簡體   English   中英

Ruby on Rails:如何在應用程序配置中設置數據庫超時?

[英]Ruby on Rails: How to set a database timeout in application configuration?

我想將我的數據庫設置為在一定時間內沒有完成的超時請求,以防止異常請求獨占整個應用程序。

有什么我可以添加到我的Rails配置文件中來設置它嗎?

我試圖添加一行我經常在線看到timeout: 5000到我的database.yml,但這似乎沒有任何影響。

我試圖在ActiveRecord::Base.connection.execute('set statement_timeout to 5000')調用ActiveRecord::Base.connection.execute('set statement_timeout to 5000') ,但這會導致Rails錯誤輸出。

我在Heroku上運行Postgres數據庫,我沒有直接的數據庫訪問權限,因此我不能直接使用數據庫配置。 即使我從Heroku控制台遠程執行該命令,他們也可以隨時重啟我的應用程序,如果在應用程序啟動時沒有重新執行,我的更改就會丟失。

database.yml的:

defaults: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  min_messages: warning
  variables:
    statement_timeout: 5000

得到了這個工作,只需要在最后一行包括environment.rb中的行,而不是在開頭或塊中。

試試這個語法:

SET statement_timeout = 5000;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM