puma web server有请求超时机制吗?

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

当请求完成时间太长时,是否可以在 puma 中配置超时设置以停止请求进程?在我的服务器中,有一种情况是 puma 中的工作线程消耗了大量的 CPU 和 RAM,并且需要很长时间才能完成。我假设我的应用程序存在逻辑错误导致此问题。

我需要一种方法来停止请求,这样它就不会让用户等待很长时间并减慢其他进程。我需要这个作为临时解决方案,直到我在我的应用程序中发现问题。

ruby-on-rails puma
1个回答
0
投票

你可以试试这个 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

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