2
我有一段代碼,代碼運行的一些方法,我已經把這個方法的self.perform內,如下Resque工人沒有日誌或
class StartWorker
@queue = :worker
def self.perform
puts "hello"
Parser.find_all_by_class_name("Parser").first.sites.each do |s|
site = Site.find(s.id)
parser = Parser.new(site)
parser.run
end
end
end
如果我評論的高清沒有調試信息默默地失敗self.perform和此結束並運行該文件,它正確地顯示所需的結果,但是當我嘗試通過取消註釋將其作爲後臺任務它正在靜靜地進入沒有顯示任何內容的resque面板中,並且也沒有輸出命令提示符
我排隊從resque-scheduler,在我的resque_schedule.yml
start_worker:
cron: "55 6 * * *"
class: StartWorker
queue: worker
args:
description: "This job starts all the worker jobs"
我試圖把該DEF self.perform方法裏面一些簡單的手看跌語句來檢查控制是否傳遞方法內或沒有,但它似乎在控制甚至沒有經過self.perform方法內
還我試圖加載Rails環境和所需resque內,但沒有用 的我都拼命地跑捆EXEC耙resque:在進行任何更改
我嘗試過的工作隊列=「*」腳本上述所有在這裏顯示的軌道控制檯Resque.info,
{:working=>0, :queues=>1, :failed=>1, :environment=>"development", :servers=>["redis://localhost:6379/0"], :pending=>0, :processed=>1, :workers=>1}
任何想法如何克服呢?
resque的Web面板不顯示任何失敗的作業,我只是看到1名工人的工作,但沒有產出或沒有日誌裏,當我試圖「捆綁高管耙resque:工作隊列= *」這是拋出錯誤,如**耙子中止了! 未定義的方法'map'爲零:NilClass ** –
對!所以你的工人不會真的開始。你需要找到它試圖.map的零對象。 – TomDunning
是的,但如何得到這個錯誤來自哪裏?當使用不帶self.perform方法或不具有StartWorker類運行很好產生所需的輸出 –