ruby on rails-延迟作业未登录生产



我希望我延迟的作业"代码"能够根据业务需求登录到不同的日志文件中。因此,我在一个名为dj.log的日志中记录一个自定义状态。在"序列化"作业中,我将日志语句放入我的文件中。

以下是的设置

Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 60
Delayed::Worker.max_attempts = 10
Delayed::Worker.delay_jobs = !( Rails.env.test? || Rails.env.development? ) #dont use delayed_job in development or test mode
#Delayed_job custom logger
DJ_LOGFILE = File.join(Rails.root, 'log', 'dj.log')

这是工人们实际做的工作

    people.each {|p| Mailer.mail(1233, p).deliver; sent_to << p.email }                
    Logger.new(DJ_LOGFILE).info("[DELIVERED] All Emails delivered (#{sent_to.join(", ")})")

这里可能有什么问题?请帮助

DelayedJob维护自己的记录器,因此您需要将其指向特定的日志文件。因此,在初始化器文件(environment.rb,或者更好的是,config/initializers中的特定delayed_job.rb文件)中添加以下内容:

Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'dj.log'))

这是我的解决方案(用2.1.4测试):

config/ininitializers/delayed_job.rb

Delayed::Worker.logger ||= Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))

问题在于这个bug:https://github.com/collectiveidea/delayed_job/issues/382。。。。.

相关内容

  • 没有找到相关文章

最新更新