能否为 Ruby on Rails 中仅针对 Web 查询(Postgres)设置语句超时(statement_timeout),而不是针对 Sidekiq 工作者/任务?原因是 Heroku Web 查询在 30 秒后会超时,因此在 Puma 中终止查询是有意义的。但我希望 Sidekiq 数据库查询能够执行更长时间。
我已经尝试在 database.yml
中进行类似以下方式的设置:
primary:
<<: *default
url: <%= ENV['DATABASE_URL']) %>
variables:
statement_timeout: <%= ENV["STATEMENT_TIMEOUT"] || "0" %>
然后在我的 Procfile
中这样做:
web: STATEMENT_TIMEOUT=30s bundle exec puma
但是没有起作用。语句超时会在几个请求后被重置为0。