2012-12-12 86 views
0

我正在使用Heroku的調度程序來運行腳本。但是,腳本運行的時間將從幾毫秒增加到幾分鐘。我正在尋找使用delayed_job gem將這個過程推送給工人Dyno。我想繼續每天運行一次該腳本,只需將其卸載到工作人員。我現在的rake任務是:用工人Dyno在Heroku上安排延遲作業

desc "This task updates some stuff for you." 
task :update_some_stuff => :environment do 
    puts "Updating some stuff ..." 
    SomeClass.new.process 
    puts "... done." 
end 

一旦安裝了寶石,運行遷移,和工人DYNO開始,將腳本只需要更改爲:

desc "This task updates some stuff for you." 
    task :update_some_stuff => :environment do 
     puts "Updating some stuff ..." 
     SomeClass.new.delay.process 
     puts "... done." 
    end 

通過此任務仍然是一個耙子Heroku的調度程序計劃的任務是唯一需要在這裏引入delay方法將其放入工作隊列中的方法?

在此先感謝您的幫助。

回答

0

是的,DJ是一個非常簡單的寶石,您應該能夠通過在您的數據庫的delayed_jobs表中添加一條記錄,在本地正確工作。在Heroku上運行的工作人員應該沒問題。

只要確保你已經在你的Procfile如下:

worker: bundle exec rake jobs:work 

更多信息可以在這裏找到:https://devcenter.heroku.com/articles/delayed-job

+0

感謝尼爾。我會放手一搏! – user1524775