如果我在perform()
内登录,我会得到一个漂亮的输出:
def perform(*args)
begin
MyActivity.run(*args)
rescue StandardError => e
Rails.logger.debug e
raise e
end
end
13:55:10 resque.1 | [ActiveJob] [MyJob] [18cd0f78-d784-48a7-a573-0b3aa95c51cc] Connection refused - connect(2) for "fe80::1%lo0" port 3000
如果我在rescue_from
区域内登录,我将无法获得ActiveJob
或JobId
rescue_from(StandardError) do |e|
Rails.logger.debug e
end
13:55:11 resque.1 | Connection refused - connect(2) for "fe80::1%lo0" port 3000
我认为在rescue_from
区块作业已经终止,所以我们不再拥有JobId
。
有没有办法像perform
中的日志一样获取输出?
答案 0 :(得分:0)
刚刚发现我可以这样做:
rescue_from(StandardError) do |e|
Rails.logger.debug "[ActiveJob] [#{self.class}] [#{job_id}] #{e}"
end
如果我不想为任何工作记录任何类型的错误,我可以在application_job.rb
内编写此代码甚至更好。