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

问题描述 投票:0回答:1

每当我在本地运行应用程序时点击

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

有没有什么方法可以解决这个问题而不只是消除所有美洲狮工人?

ruby-on-rails ruby puma pry
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.