我没有在rails日志或延迟的作业日志文件中看到任何来自延迟作业的日志消息,我看到的唯一消息是delay_jobs.log文件中作业启动/成功/失败的消息。
I don't see any log messages from delayed job in my rails logs or delayed job log file, the only messages I see are jobs starting/success/failure in the delayed_jobs.log file.
这引起了大问题,包括检测工作人员的错误和内存泄漏几乎是不可能的!
this is causing big problems, including detecting bugs and memory leaks in workers almost impossible! Please help!
推荐答案我们已经通过入侵Rails.logger本身来在Rails 3 / Delayed Job 2.0.3上工作。使用不同的日志文件(我们需要一个用于delay_job条目的日志文件),并且还将延迟的作业记录器设置为使用完全相同的对象:
We've gotten it to work on Rails 3/Delayed Job 2.0.3 by hacking Rails.logger itself to use a different log file (the one we want for delayed_job entries) and also setting the delayed job logger to use the exact same object:
file_handle = File.open("log/#{Rails.env}_delayed_jobs.log", (File::WRONLY | File::APPEND | File::CREAT)) # Be paranoid about syncing, part #1 file_handle.sync = true # Be paranoid about syncing, part #2 Rails.logger.auto_flushing = true # Hack the existing Rails.logger object to use our new file handle Rails.logger.instance_variable_set :@log, file_handle # Calls to Rails.logger go to the same object as Delayed::Worker.logger Delayed::Worker.logger = Rails.logger如果以上代码不起作用,请尝试替换带有 RAILS_DEFAULT_LOGGER 的Rails.logger 。
If the above code doesn't work, try replacing Rails.logger with RAILS_DEFAULT_LOGGER.
更多推荐
延迟作业记录
发布评论