2013-08-29 16 views
9

、私はこのように、労働者のIDを見ることができます:@私の労働者の身体内部私のサイドキック労働者のIDを労働者の中に入れることはできますか? sidekiqのログファイルに

2013-08-28T10:19:03Z 8911 TID-osy5fnl1o MyWorker JID-262996c2737e7a5ec5c71674 INFO: start 
2013-08-28T10:19:03Z 8911 TID-ptes4 MyWorker JID-6830e08b5da72b360d4d1ae2 INFO: start 
2013-08-28T10:19:03Z 8911 TID-povog MyWorker JID-2d31755b001ecd02fe1abc09 INFO: done: 22.52 sec 
2013-08-28T10:19:04Z 8911 TID-povog MyWorker JID-df52f500a3ba27e18b2ba313 INFO: start 

を@メソッドを実行し、私はそのIDを取得したいのですが。可能でない場合は、同じクラスの複数の並行作業者がいることを考慮して、そのワーカーの一意のIDを取得するための最良の戦略は何でしょうか?

ログファイルの処理に役立つ必要があります。

答えて

12

jidアクセサメソッドとThread.currentメソッドを使用するスレッドIDを使用してジョブIDにアクセスできます。このように:

logger.info "JID #{jid} - TID #{Thread.current.object_id.to_s(36)}" 
+0

これは、あなたがアクティブレコードモデルメソッドを延期した場合、残念ながらうまくいきません。 – coorasse

2

あなたはself.job_id(または@job_id)とそれをゲットするActiveJobを使用している場合。

関連する問題