延迟的作业未登录生产 [英] Delayed Job not logging in Production

查看:54
本文介绍了延迟的作业未登录生产的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望我的延迟工作代码登录到另一个满足业务需求的日志文件中。因此,我在名为dj.log的日志中记录了自定义状态。在序列化作业中,我将日志语句记录到文件中。

I want my delayed job "code" to log in a different log file for business requirements. So I log a custom status in a log called as dj.log. Inside the "serialized" job, I am putting the log statements to log in my file.

这里是设置方式

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')

在这里是工人实际要做的工作

and here is the job that the workers actually do

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

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

what could be the problem here ? please help

推荐答案

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

DelayedJob maintains it's own logger so you'll need to point that to your specific log file. So, in your initializer file (either environment.rb or, better, a specific delayed_job.rb file in config/initializers) add the following:

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

这篇关于延迟的作业未登录生产的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆