登录delayed_job的?(Logging in delayed_job?)

2019-07-19 02:08发布

我不能让任何日志输出delayed_job ,我不知道我的工作已经开始。

这里是我的Procfile:

web:     bundle exec rails server
worker:  bundle exec rake jobs:work
worker:  bundle exec clockwork app/clock.rb

而这里的工作:

class ScanningJob
  def perform
    logger.info "logging from delayed_job"
  end

  def after(job)
    Rails.logger.info "logging from after delayed_job"
  end
end

我看到发条输出系统出来,我可以看到工人执行开始,但我从来没有看到我的日志报表的打击。 我想puts也无济于事。

我的时钟文件很简单:

every(3.seconds, 'refreshlistings') { Delayed::Job.enqueue ScanningJob.new }

我只是想看看这方面的工作,并且缺乏日志意味着我不能。 这里发生了什么?

Answer 1:

当我需要从延迟作业日志输出,我发现这个问题是相当有帮助的。

config/initializers/delayed_job.rb我添加一行:

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

然后,在我的工作,我输出到该日志与:

Delayed::Worker.logger.debug("Log Entry")

这将导致文件log/dj.log被写入。 这个工程的开发,分期和生产环境。



文章来源: Logging in delayed_job?