由于 Puma 工作线程超时,Pry 会话超时

Jam*_*ill 6 ruby ruby-on-rails pry puma

每当我binding.pry在本地运行应用程序时,我都会像往常一样进入 pry 会话,但是大约一分钟后,我在服务器输出中看到了类似的内容。 [54438] ! Terminating timed out worker: 54455

然后服务器似乎在循环中运行了一两秒钟(重新运行导致 pry 会话的查询)并且我从同一个返回到一个新的 pry 会话binding.pry,除了在这个新的 pry 会话中,每当我输入我可以'看不到我正在输入的任何内容。解决此问题的唯一方法是退出服务器并重新启动。

我试过在我的config/puma.rb文件中插入以下行,但似乎没有任何区别。 worker_timeout 900 if ENV["RACK_ENV"] == "development"

唯一有效的是在我的 .env 文件中将 puma 工人的数量设置为 0。例如 PUMA_WORKERS=0

有没有办法解决这个问题,而不是仅仅消除所有美洲狮工人?

小智 0

Puma 配置文件是在 Puma 初始化时读取的,应用程序尚未加载,这就是为什么Rails.env.development?不起作用,也不使用RACK_ENV,因为你不在请求的范围内。

如果您只想更改worker_timeout以进行开发,您应该执行以下操作:

worker_timeout 900 unless ENV.key?('RAILS_ENV') && ENV['RAILS_ENV'] != 'development'
Run Code Online (Sandbox Code Playgroud)

这意味着,当没有设置 RAILS_ENV 或设置为 时,将超时设置为 900 development