2013-06-12 3 views
12

आप कैसे निदान करते हैं कि manage.py celerybeat किसी भी कार्य को निष्पादित नहीं करेगा?सेलेरीबीट आवधिक कार्यों को निष्पादित नहीं कर रहा

मैं कमांड के साथ supervisord के माध्यम से celerybeat चल रहा हूँ:

/usr/local/myapp/src/manage.py celerybeat --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO 

Supervisord celerybeat ठीक से चलाने के लिए प्रकट होता है, और लॉग फ़ाइल दिखाता है:

[2013-06-12 13:17:12,540: INFO/MainProcess] Celerybeat: Starting... 
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new __version__ field 
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new tz field 
[2013-06-12 13:17:12,572: WARNING/MainProcess] Reset: Account for new utc_enabled field 

मैं कई आवधिक रूप में दिखा कार्य है http://localhost:8000/admin/djcelery/periodictask पर सक्षम है जो हर कुछ मिनटों को चलाना चाहिए। हालांकि, सेलेरीबीट लॉग कभी भी कुछ भी निष्पादित नहीं दिखाता है। यह क्यों होगा?

उत्तर

18

सेलेरीबीट केवल कार्य को स्केलड्यूल करेगा, इसे निष्पादित नहीं करेगा। कार्य निष्पादित करने के लिए आपको कार्यकर्ता भी शुरू करने की आवश्यकता है। आप अजवाइन के साथ-साथ कार्यकर्ता को एक साथ शुरू कर सकते हैं। मैं "celeryd -B"

का उपयोग अपने मामले में यह दिखना चाहिए:

/usr/local/myapp/src/manage.py अजवाइन कार्यकर्ता --beat --schedule =/tmp/celerybeat-अनुसूची-MyApp --pidfile =/tmp/celerybeat-myapp.pid --loglevel = जानकारी

या

/usr/स्थानीय/मी yapp/src/manage.py celeryd -B --schedule =/tmp/celerybeat-अनुसूची-MyApp --pidfile =/tmp/celerybeat-myapp.pid --loglevel = जानकारी

+0

अरे @YoK - क्या आप यहां मदद कर सकते हैं, मैं सेलरी मल्टी के माध्यम से सेलेरी मल्टी चला रहा हूं - बीट और - शेड्यूल विकल्प हालांकि कोई कार्य निष्पादित नहीं किया जा रहा है। मैंने 'CELERY_IMPORTS = (" कार्यों ",) के साथ' @ app.periodic_task' के साथ सजावटी कार्य करने की कोशिश की लेकिन कोई सफलता नहीं। – Greg0ry

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