2014-02-15 62 views
0

我想在rails上使用rufus-scheduler gem來設置一些任務(每小時發送一封郵件)。我安裝了寶石,並創建了一個config/initializer/task_scheduler.rb如何在rails上工作rufus-scheduler?

require 'rubygems' 
require 'rufus/scheduler' 
scheduler = Rufus::Scheduler.start_new 
scheduler.every("1h") do 
    Rule.all.each do |r| 
     RuleMailer.report_email(r).deliver 
    end 
end 

但我不明白下一步是什麼。這將如何運行?我應該設置一個cron嗎?這是由網絡服務器運行? rails s或rake任務,或者是什麼。

我不明白,我無法找到這些信息。

回答

0

這將運行使用every

Rufus-scheduler支持五種作業。在,每隔 和cron作業。

https://github.com/jmettraux/rufus-scheduler上,它顯示了各種用途的示例,在各種塊中。如果你想使用cron,它會看起來更像這個scheduler.cron '00 09 * * *' do(直接從示例中,沒有設置到你的時間間隔)。

+0

我不明白,我的意思是,我已經做了「每一個」塊,但是會執行什麼代碼呢?我應該運行一個紅寶石腳本安裝什麼或什麼?我的意思是,它是一個.rb文件,它必須被執行才能運行,如果沒有被執行,它不會影響我擁有它的代碼永遠不會運行。 –

+0

它應該像你在初始化程序中那樣工作...不是嗎? –

+0

是的,我有它的初始化,所以這是由網絡服務器執行? –