2016-12-01 32 views
9

जब मैं Django अनुप्रयोग में अजवाइन कार्यकर्ता शुरू करने के लिए कोशिश कर रहा हूँ के रूप में:अजवाइन कार्यकर्ता शुरू फेंकता "कोई विशेषता 'worker_state_db'"

File "/home/alexander/.pyenv/versions/3.5.1/envs/myApp/lib/python3.5/site-packages/celery/utils/collections.py", line 134, in __getattr__ 
    type(self).__name__, k)) 

    AttributeError: 'Settings' object has no attribute 'worker_state_db' 

आप जानते हैं कि कैसे हैं:

celery -A myApp worker -l info 

मैं त्रुटि निम्न मिल इसे हल करने के लिए कृपया अपना विचार लिखें!

उत्तर

10

बग तब दिखाई देता है जब सेटिंग्स को पार्स करते समय अपवाद उठाया जाता है।

SECRET_KEY = "asdfasdfasdf" 

या उपयोग:

SECRET_KEY = os.environ.get('SECRET_KEY', '') 

SECRET_KEY = os.environ['SECRET_KEY'] 

समस्या आप पर वापस लौट सकता हल करने के लिए: इस तरह जब हम Django के SECRET_KEY (या किसी अन्य सेटिंग) सेट एक वातावरण चर के माध्यम से के रूप में

यदि आप हमारी निम्नलिखित पंक्ति को celery.py फ़ाइल में टिप्पणी करते हैं और फिर कार्यकर्ता को फिर से शुरू करते हैं, तो आप यह भी ढूंढ सकते हैं कि समस्या किस कारण से हुई:

app.config_from_object('django.conf:settings', namespace='CELERY') 
+0

लाइन 'app.config_from_object ...' को हटाएं, समस्या को डीबग करने के लिए काम नहीं किया है, लेकिन 'SECRET_KEY = os.environ ... 'को बदलकर पूरी तरह से काम किया है। धन्यवाद। –

+1

अजीब, आखिरी बार मेरे पास कुछ चर थे जो बिना प्राप्त किए गए थे() और मैं उस पंक्ति पर टिप्पणी करने के बाद उनमें से प्रत्येक को ढूंढने में कामयाब रहा। वैसे भी, सभी सेटिंग्स के माध्यम से जाना बेहतर है और निरीक्षण करें कि उनमें से कौन सा os.environ ['xxxxx'] –

+0

के साथ लोड किया गया है, अगर मुझे os.enviro में उन चरों को रखने की आवश्यकता है तो क्या होगा? @alexander –

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