Mik*_*ian 5 ruby-on-rails delayed-job
我尝试在rails中的delayed_job内登录.
我将其配置如下:
Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.max_attempts = 3
Delayed::Worker.backend = :active_record
Delayed::Worker.logger = ActiveSupport::BufferedLogger.new("log/#{Rails.env}_delayed_jobs.log", Rails.logger.level)
Delayed::Worker.logger.auto_flushing = 1
Run Code Online (Sandbox Code Playgroud)
定义我的工作:
class TestJob
def initialize(user)
@user = user
end
#called when enqueue is performed
def enqueue(job)
Delayed::Worker.logger.info("TestJob: enqueue was called")
end
def perform
Delayed::Worker.logger.info("\n\n\n\nTestJob: in perform, for user #{@user.twitter_username}")
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我打电话给我的工作时
Delayed::Job.enqueue(TestJob.new(user), 2)
Run Code Online (Sandbox Code Playgroud)
即使delayed_jobs表显示已执行作业,日志文件仍为空.
有任何想法吗?
尝试不使用 DJ 的命名空间。
这是我不久前使用的一份工作的代码。注意:Logger.new如果 .log 文件已经存在,则只会附加到该文件。
class ScrapingJob < Struct.new(:keyword_id)
def perform
begin
...
rescue => error
log = Logger.new("#{Rails.root}/log/scraping_errors.log")
log.debug "logger created for '#{keyword.text}' (#{keyword.id}) on '#{keyword.website.url}' (#{keyword.website.id})"
log.debug "time: #{measured_at.to_s(:short)}"
log.debug "error: #{error}"
log.debug ""
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |