[英]Rake task not running from within worker
我不明白為什么我的rake任務不是從resque工作者中運行的。 運行
rake :send_this_email
從控制台工作正常,我只想將它作為一個cron作業運行(如下所示)但是在從工作者中調用rake任務時,某些東西不能正常工作。
我的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
rake任務應該每2分鍾運行一次嗎? 它不是,resque管理面板將其顯示為隊列中的作業。 我在這里錯過了什么?
感謝您的關注。
從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
只require 'rake'
是不夠的。 例如,如果您執行Rake :: Task.tasks #list所有任務
你會得到[]
您需要告訴您的worker類加載任務。 嘗試這個
require 'rake'
Rake::Task.clear # necessary to avoid tasks being loaded several times in dev mode
YOUR_APP_NAME::Application.load_tasks
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
YOUR_APP_NAME
是您應用的名稱,可在config/application.rb
找到
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.