延迟作业记录

编程入门 行业动态 更新时间:2024-10-21 09:54:33
本文介绍了延迟作业记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 #Here is how I have delayed job set up. Delayed::Worker.backend = :active_record #Delayed::Worker.logger = Rails.logger Delayed::Worker.logger = ActiveSupport::BufferedLogger.new("log/ ##{Rails.env}_delayed_jobs.log", Rails.logger.level) Delayed::Worker.logger.auto_flushing = 1 class Delayed::Job def logger Delayed::Worker.logger end end if JobsCommon::check_job_exists("PeriodicJob").blank? Delayed::Job.enqueue PeriodicJob.new(), 0, 30.seconds.from_now end #end #Here is my simple job. class PeriodicJob def perform Rails.logger.info "Periodic job writing #{Time.now}" Delayed::Job.enqueue PeriodicJob.new(), 0, 30.seconds.from_now end end

我没有在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.

更多推荐

延迟作业记录

本文发布于:2023-11-27 09:20:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1637481.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!