【发布时间】:2017-11-30 01:55:12
【问题描述】:
自从在本地开发环境中试用 ActionCable 以来。我注意到应用程序变慢并经常挂起。
如果我运行 netstat,我会看到很多连接,它们是由 action cable 创建的。这是预期的和正常的吗?
netstat -atn | grep 3000
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52163 ESTABLISHED
tcp4 0 0 127.0.0.1.52163 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52161 ESTABLISHED
tcp4 0 0 127.0.0.1.52161 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52159 ESTABLISHED
tcp4 0 0 127.0.0.1.52159 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52157 ESTABLISHED
tcp4 0 0 127.0.0.1.52157 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52155 ESTABLISHED
tcp4 0 0 127.0.0.1.52155 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52152 ESTABLISHED
tcp4 0 0 127.0.0.1.52152 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 127.0.0.1.3000 127.0.0.1.52146 ESTABLISHED
tcp4 0 0 127.0.0.1.52146 127.0.0.1.3000 ESTABLISHED
tcp4 0 0 *.3000 *.* LISTEN
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51682 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51688 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51684 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51686 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51667 TIME_WAIT
tcp4 0 0 127.0.0.1.3000 127.0.0.1.51690 TIME_WAIT
我已尝试更改急切加载,但似乎并没有改变这种行为
config.eager_load = true
【问题讨论】:
-
您如何维护连接
-
仅使用 ActionCable 默认设置进行简单通知
-
所以这不会是问题,因为您使用的是默认设置,因此它创建了多个连接。为了避免它,您可以通过设置生产配置来使用生产配置。开发:适配器:异步测试:适配器:异步生产:适配器:redis url:redis://10.10.3.153:6381 channel_prefix:appname_production
-
您能告诉我们您在开发中使用的服务器吗?我敢猜测,如果你搬到 Puma 进行开发,问题就会得到解决。
-
@stef 我正在使用 Puma 和 Rails 5.1