当请求完成时间太长时,是否可以在 puma 中配置超时设置以停止请求进程?在我的服务器中,有一种情况是 puma 中的工作线程消耗了大量的 CPU 和 RAM,并且需要很长时间才能完成。我假设我的应用程序存在逻辑错误导致此问题。
我需要一种方法来停止请求,这样它就不会让用户等待很长时间并减慢其他进程。我需要这个作为临时解决方案,直到我在我的应用程序中发现问题。
你可以试试这个 ruby 模块 https://ruby-doc.org/stdlib-2.5.1/libdoc/timeout/rdoc/Timeout.html 长进程。
如果进程挂了,你可以把它添加到config/puma.rb。并根据您的需要将3600更改为您的价值。
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "production") == "production"
指定
worker_timeout
阈值,Puma 在终止开发环境中的 worker 之前将用来等待。
更多信息在这里https://www.rubydoc.info/gems/puma/Puma%2FDSL:worker_timeout