2012-06-10 127 views
8

我有一個需要每分鐘執行一次的週期性任務(使用delayed_job)。我希望Rails在加載完成後立即自動排隊,如果這樣的任務還沒有出現在系統中。Rails加載完成後運行代碼?

對於我來說,在整個Rails引導流程結束時運行一些代碼的好地方是什麼?有人建議config/environments/development.rb(或其他環境),但是當我從那裏排隊時,delayed_job會給我ActiveRecord問題。

我查閱了http://guides.rubyonrails.org/initialization.html,而且這種代碼似乎也沒有明確的位置。

這種部署後設置可能是通過外部應用程序的代碼完成的,也許是通過rake或其他方式完成的?有什麼建議麼?

謝謝!

+0

cron作業? (15個字符) –

回答

8

關於http://guides.rubyonrails.org/initialization.html,抱歉,我們正在努力改寫它。對於你的問題,我會config.after_initialize嘗試在application.rb中

def after_initialize(&block) 
    ActiveSupport.on_load(:after_initialize, :yield => true, &block) 
end 
2

你有兩種選擇真的

1)將其添加到初始化目錄,這應該沒問題。

2)在application.rb中的最後添加它,這是不乾淨的,但它會之類的初始化準備在這一點上,所以如果1)失敗的原因爲AR問題p做2)