正如问题标题所示,我正在尝试将resque作业的id添加到日志中。在我的常规rails日志记录中,我设置了标记日志记录,因此每个日志条目都有请求的上下文。我不确定如何为resque作业执行此操作 - 是否在日志环境中可以使用作业ID?
基本上我想做这样的事情:
Resque.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
Resque.log_tags = [
proc do |job|
job["id"]
end
]
这是伪代码,它显然不起作用。
我发现的最接近的是this宝石,它仍然没有做我想要的。
答案 0 :(得分:1)
查看resque
源代码,我发现目前无法做到这一点。但是,您可以使用钱修补来实现您的愿望目标。你可以做点什么
module Resque::Logging
def self.log(severity, message)
log_message = "[#{::Process.pid}] #{message}"
Resque.logger.__send__(severity, log_message) if Resque.logger
end
end
答案 1 :(得分:0)
您可以使用gem'resque-status'为每个作业生成一个job_id。
唯一的问题是你需要更改所有对Resque.enqueue的调用,例如:
job_id = ExampleJob.create(:parameter =>'something')
Resque-Status - > https://github.com/quirkey/resque-status