2
我不明白爲什麼我的Rake任務沒有從Resque Worker中運行。運行Rake任務沒有從工作人員內部運行
rake :send_this_email
從控制檯正常工作,我只是想運行它作爲一個cron作業(如下),但同時從工人中調用rake任務東西沒有proplerly工作。
我rescue_schedule.yml
send_this_email:
cron: "*/2 * * * *"
class: SendThisEmailWorker
args:
description: "Send email when condition defined in rake task is met"
我send_this_email_worker.rb
在workers
目錄中,其中的問題一定是,如果我可以手動從控制檯調用rake任務自己?
require 'rake'
module SendThisEmailWorker
@queue = :send_this_email
def self.perform
Rake::Task["send_this_email"].invoke
end
end
當我開始我的開發服務器這個send_this_email
耙任務運行,每2分鐘是否正確?這不是,重置管理面板將其顯示爲隊列中的作業。我在這裏錯過了什麼?
感謝您的關注。
從gerep評論
require 'rake'
module SendThisEmailWorker
@queue = :send_this_email
def self.perform
puts "Hi from the console, I'm started"
Rake::Task["send_this_email"].invoke
end
end
發現你有一個工人開始了嗎?爲了測試,在你的cronjob上放一個「放任何東西」,以確保它每2分鐘被調用一次,它將被打印在你的控制檯上 – Gerep 2013-03-21 19:56:25
我添加了上面的內容,沒有任何內容被打印到控制檯,我的rake任務也輸出到控制檯。此外,在resque admin/interface中,我可以選擇立即開始工作,當我這樣做時,rake任務不會被調用,也不會收到任何電子郵件。 – 2013-03-21 20:06:38
我相信我在這裏發現了我的問題的解決方案,我用以下'QUEUE = * rake environment resque:work rails s'重新啓動了我的服務器https://github.com/defunkt/resque/wiki/FAQ#how-do -i-ensure-my-rails-classesenvironment-is-loaded – 2013-03-21 20:14:01