2012-07-11 32 views
6

मैं celery कार्यकर्ता को django अनुरोध वस्तु कैसे पास कर सकते हैं। अनुरोध ऑब्जेक्ट को पास करने का प्रयास करते समय यह एक त्रुटिDjango-अजवाइन: अनुरोध पास करने के लिए कार्यकर्ता

Can't Pickle Input Objects 

ऐसा लगता है कि अजवाइन कार्यकर्ता को पास किए गए किसी भी तर्क को क्रमबद्ध करता है। मैंने JSON जैसे अन्य क्रमिकरण विधियों का उपयोग करने का प्रयास किया।

CELERY_TASK_SERIALIZER = "JSON" 

लेकिन यह काम नहीं कर रहा है।

क्या सेलेरी को कॉन्फ़िगर करना संभव है ताकि यह डेटा को क्रमबद्ध न करे। या मैं कार्यकर्ता को पास करने से पहले अनुरोध ऑब्जेक्ट को एक स्ट्रिंग में परिवर्तित कर सकता हूं और फिर कार्यकर्ता में ऑब्जेक्ट में फिर से परिवर्तित कर सकता हूं।

अग्रिम धन्यवाद ...

+0

स्ट्रिंग में कनवर्ट करना और ऑब्जेक्ट में कनवर्ट करना को क्रमबद्धता कहा जाता है। –

उत्तर

9

आप Django के अनुरोध वस्तुओं (अधिक जानकारी के लिए this question देखें) अचार नहीं कर सकते। इसके बजाय आपको अनुरोध वस्तु से संबंधित जानकारी को पास करना चाहिए जिसे आपको सेलेरी कार्यों के लिए आवश्यक है।

आपको सेलरी कार्य में अन्य जानकारी उत्तीर्ण करने में कोई समस्या नहीं होनी चाहिए क्योंकि अधिकांश वस्तुओं को बिना किसी समस्या के उठाया जा सकता है।

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