1
perform
メソッドの中で、私は現在のジョブのIDが何であるか知りたいです。例えばRails 4 - 遅延ジョブ - performメソッドのジョブIDを知ることは可能ですか?
、enqueue
、success
、failure
とerror
方法はjob
パラメータ提供:
def enqueue(job)
puts job.id
end
が、それは可能ですか?
perform
メソッドの中で、私は現在のジョブのIDが何であるか知りたいです。例えばRails 4 - 遅延ジョブ - performメソッドのジョブIDを知ることは可能ですか?
、enqueue
、success
、failure
とerror
方法はjob
パラメータ提供:
def enqueue(job)
puts job.id
end
が、それは可能ですか?
sidekiqをバックエンドとして使用しているとします。あなたは次の操作を行うことがあり、その場合には:
def perform(*args)
logger.info self.job_id
# Do something later
end
ここでは、ログ出力
[ActiveJob] [RequestHandlerJob] [e9923650-cd02-40d1-937d-859852e92c61] e9923650-cd02-40d1-937d-859852e92c61
UPDATE
は申し訳ありませんが、それを逃しています。
私はここでそのSO post
# config/initializers/delayed_job.rb
Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'dj.log'))
class RequestHandlerJob < ActiveJob::Base
queue_as :default
def perform(user_id)
u = User.find(user_id)
Delayed::Worker.logger.info self.job_id
# Do something later
end
end
[[email protected] ~/workspace/tapp/log]$ tail -f dj.log
I, [2016-06-24T07:58:32.329471 #23874] INFO -- : 2016-06-24T07:58:32+0600: [Worker(host:iMac-Roman.local pid:23874)] Starting job worker
I, [2016-06-24T07:58:42.404522 #23874] INFO -- : 2016-06-24T07:58:42+0600: [Worker(host:iMac-Roman.local pid:23874)] Job ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper (id=7) RUNNING
I, [2016-06-24T07:58:42.448858 #23874] INFO -- : 5f267272-8826-491d-b7d5-82a200e1a6b6
I, [2016-06-24T07:58:42.451204 #23874] INFO -- : 2016-06-24T07:58:42+0600: [Worker(host:iMac-Roman.local pid:23874)] Job ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper (id=7) COMPLETED after 0.0466
I, [2016-06-24T07:58:42.452007 #23874] INFO -- : 2016-06-24T07:58:42+0600: [Worker(host:iMac-Roman.local pid:23874)] 1 jobs processed at 15.9642 j/s, 0 failed
で解決策を見つけたがJOB_ID 5f267272-8826-491d-b7d5-82a200e1a6b6
です。助けてくれることを願っています。
Rails 4.1.8とDelayed Job gemをhttps://github.com/collectiveidea/delayed_job – dmferrari
から使用しているので、まだ適用されているかどうかわかりません。delayed_jobの例を追加しました。 – retgoat
私はActiveJob :: Baseを使用することはできません。レール4.1.8(4.2ではなく)です。私が間違っていれば私を修正してください。 – dmferrari