每当我在本地运行应用程序时点击
binding.pry
时,我都会像平常一样进入 pry 会话,但大约一分钟后,我会在服务器输出中看到类似的内容。
[54438] ! Terminating timed out worker: 54455
然后服务器似乎循环运行一两秒(重新运行导致撬开会话的查询),并且我从同一个
binding.pry
返回到新的撬开会话,除了在这个新的撬开会话中每当我输入 我看不到我正在输入的任何内容。解决此问题的唯一方法是退出服务器并重新启动。
我尝试在我的
config/puma.rb
文件中插入以下行,但似乎没有任何区别。
worker_timeout 900 if ENV["RACK_ENV"] == "development"
唯一有效的方法是在 .env 文件中将我必须的 puma 工作人员数量设置为 0。例如
PUMA_WORKERS=0
有没有什么方法可以解决这个问题而不只是消除所有美洲狮工人?
Puma 配置文件在 Puma 初始化时读取,应用程序尚未加载,这就是为什么
Rails.env.development?
不起作用,也不使用 RACK_ENV
,因为您不在请求范围内。
如果您只想更改worker_timeout以用于开发,您应该执行以下操作:
worker_timeout 900 unless ENV.key?('RAILS_ENV') && ENV['RAILS_ENV'] != 'development'
这意味着,当没有设置 RAILS_ENV 或设置为
development
时,将超时设置为 900。