2013-08-29 44 views
9

在sidekiq的日誌文件,我可以看到工人的身份證,就像這樣:我可以在工人內部獲得我的sidekiq工人的ID嗎?

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

如果您延遲了activerecord模型方法,這很遺憾不起作用。 – coorasse

2

如果您使用ActiveJob你得到self.job_id(或@job_id)得到它。

相關問題