2012-01-03 27 views
10

अजीब मुद्दों विंडोज पर celerybeat प्रारंभ नहीं कर सकता। मैं एक Django आवेदन विकसित कर रहा हूं और अब मैं सेलेरी को लागू करने की कोशिश कर रहा हूं। मुझे कतारबद्ध करने के लिए सामान्य कार्यों और आवधिक कार्यों दोनों की आवश्यकता है। मैं सिर्फ ठीक से celeryd शुरू कर सकते हैं, और इसके साथ कार्यों को निष्पादित कर सकते हैं (मैं इसे python manage.py celeryd start --settings=settings --loglevel=INFO कमांड के साथ शुरू)।अजवाइन + Django: यहाँ पर 7

विंडोज पर आप हरा मोड सक्षम करने के -beat/-b ऐसा नहीं कर सकते; आपको सेलरीबीट को एक अलग सेवा के रूप में शुरू करने की आवश्यकता है (यह सेलरी दस्तावेज़ों के एफएक्यू अनुभाग में कहा गया है)। python manage.py celerybeat -s djcelery.schedulers.DatabaseScheduler --settings=settings --loglevel=INFO - - अगर मैं आदेश पंक्ति में इस टाइप मैं इस तरह एक त्रुटि प्राप्त:

[2012-01-02 19:06:52,009: WARNING/MainProcess] ERROR: Pidfile (celerybeat.pid) a 
lready exists. 
Seems we're already running? (PID: 2364) 
[2012-01-02 19:06:52,012: INFO/MainProcess] process shutting down 

और celerybeat वास्तव में शुरू होता है कभी नहीं। तो मैं किसी भी आवधिक कार्यों को निष्पादित नहीं कर सकता ... कोई विचार? मुझे केवल one other page मिला जहां किसी ने भी इसी तरह की त्रुटि को हाइलाइट किया, लेकिन कोई समाधान नहीं दिया गया था।

वहाँ यदि आवश्यक हो कोई और जानकारी, तो कृपया मुझे बताएं। मैं परेशान हूं क्योंकि मुझे इस विषय पर कोई जानकारी नहीं मिल रही है, और मैं आज पूरे दिन इस समस्या को हल करने की कोशिश कर रहा हूं ... धन्यवाद।

उत्तर

13

कि पीआईडी ​​फ़ाइल के लिए अपनी फाइल सिस्टम खोज और इसे हटा दें। यूनिक्स मशीनों पर आमतौर पर प्रोग्राम का सही ढंग से बंद नहीं किया गया था। आप अपने पहले से ही कार्य प्रबंधक में चल रहा है, तो देखने के लिए, यदि ऐसा है तो यह मारने की जाँच करें, और फिर कोशिश करें कि फ़ाइल

हटाना तो चाहिए।

यदि कोई पीआईडी ​​फ़ाइल मौजूद है, शायद वहाँ सॉफ्टवेयर के साथ एक मुद्दा है के रूप में यह यूनिक्स से शायद पोर्ट किया गया इसका मतलब है कि?

+1

मैंने खरगोश एमक्यू सेवा को मैन्युअल रूप से रोक दिया, पाया और हटा दिया 'celerybeat.pid', फिर RabbitMQ बैक अप शुरू किया - और यह अब काम करता है। बहुत बहुत धन्यवाद, मुझे नहीं पता कि मैंने खुद कोशिश क्यों नहीं की ... मुझे लगता है कि मैं बहुत डरावना था। और किसी और के लिए जो इस असुविधा से बचना चाहता है - सुनिश्चित करें कि आप आदेश को बंद करने से पहले हमेशा कुंजीपटल-सेलेरीड और सेलेरीबीट को बाधित करते हैं! – hangtwenty

3

विंडोज पर Django परियोजना के मेरे मामले में यह फ़ाइल पहले से Django परियोजना के रूट में मौजूदा किया गया था। मैंने उस फ़ाइल को हटा दिया और प्रक्रिया बिना किसी त्रुटि के भाग गई। enter image description here

"celerybeat.pid" पहले से ही विद्यमान था, क्योंकि मैं एक और पीसी से अजवाइन हरा भाग गया और बादल को Git रेपो धक्का दे दिया। जब मैंने अपने काम कर रहे पीसी पर रेपो खींच लिया और प्रक्रिया को चलाया, तो उसने मुझे किसी अन्य पीसी द्वारा बनाई गई फाइल "celerybeat.pid" का जिक्र करने में त्रुटि दी। "Celerybeat.pid" को हटाने से यह काम करता है।

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