2013-08-29 11 views
9

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 

मेरी कार्यकर्ता के शरीर के अंदर @ विधि करते हैं, मुझे लगता है कि आईडी प्राप्त करना चाहते हैं। यदि संभव नहीं है, तो उस कार्यकर्ता के लिए एक अद्वितीय आईडी प्राप्त करने के लिए सबसे अच्छी रणनीति क्या होगी, इस पर विचार करते हुए कि एक ही कक्षा के कई समवर्ती कर्मचारी हैं?

मुझे लॉग फ़ाइलों को संसाधित करने में सहायता के लिए इसकी आवश्यकता है।

उत्तर

12

आप जेड एक्सेसर विधि और थ्रेड current विधि का उपयोग कर थ्रेड आईडी का उपयोग कर जॉब आईडी तक पहुंच सकते हैं। इस तरह:

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

दुर्भाग्य से यह काम नहीं करता है अगर आपने एक सक्रियरेकॉर्ड मॉडल विधि में देरी की है। – coorasse

2

क्या आप self.job_id (या @job_id) के साथ इसे पाने मिल ActiveJob उपयोग कर रहे हैं।

संबंधित मुद्दे