2012-01-25 19 views
6

में तर्क के रूप में ऑब्जेक्ट पास करना क्या ऑब्जेक्ट को रेस्क्यू-वर्कर्स में तर्क मान के रूप में पास करने का कोई तरीका है।रेस्क्यू-वर्कर

मैं Resque.enqueue(SomeWorker, id) के बजाय Resque.enqueue(SomeWorker, obj) की तरह कुछ करना चाहता हूं, मेरी ऑब्जेक्ट अलग-अलग प्रकार की है जिसमें आईडी नहीं है।

किसी भी मदद की सराहना करें।

उत्तर

12

सर्वोत्तम अभ्यास के रूप में, आपको किसी कार्यकर्ता को वास्तविक वस्तु कभी नहीं पारित करनी चाहिए।

विचार यह है कि आप अपने कार्यकर्ता, आइडियाली आईडी को न्यूनतम जानकारी पास करते हैं, ताकि कार्यकर्ता शेष जानकारी को पुनः प्राप्त कर सके।

चूंकि डेटा रेडिस में जारी रहता है, तो आपको वास्तव में किसी भी तरह से अपने ऑब्जेक्ट को मार्शल करने की ज़रूरत होती है जब इसे कतार में रखा जाता है और फिर जब कार्यकर्ता डेटा पुनर्प्राप्त करता है तो उसे अनचाहे कर देता है।

यदि आपकी ऑब्जेक्ट केवल कुछ डेटा धारण कर रही है तो आपको इसे हैश के रूप में पास करने के बारे में सोचना चाहिए, क्योंकि वे रेडिस के भीतर आसानी से बने रह सकते हैं।