Celery: غير قادر على تشغيل المهام تحت Windows

تم إنشاؤها على ٨ يونيو ٢٠١٧  ·  13تعليقات  ·  مصدر: celery/celery

يبدأ الإصدار 4.x من الكرفس (بالإصلاحات رقم 4078) ولكن كل المهام تتعطل

خطوات التكاثر

استخدم البرنامج التعليمي للخطوات الأولى (http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)

الكرفس - عامل مهام --loglevel = info
add.delay (2،2)

سلوك متوقع

يتم تنفيذ المهمة ويتم إنتاج نتيجة 4

السلوك الفعلي

الكرفس تحطم.

"C: \ Program Files \ Python36 \ Scripts \ celery.exe" -A perse.celery worker -l info

-------------- كرفس @ PETRUS v4.0.2 (latentcall)


--- * * * - Windows-10-10.0.14393-SP0 2017-06-08 15:31:22


  • ** ---------- [التكوين]
  • ** ----------.> التطبيق : بيرسي: 0x24eecc088d0
  • * ----------.> النقل: amqp: // الضيف : * @ localhost: 5672 //
  • ** ----------.> النتائج: rpc: //
  • * --- * ---.> التزامن: 12 (بريفورك)- * ** ----.> أحداث المهمة: OFF (تمكين -E لمراقبة المهام في هذا العامل)

-------------- [قوائم الانتظار]
.> تبادل الكرفس = مفتاح الكرفس (المباشر) = الكرفس

[مهام]
. المهام

[2017-06-08 15: 31: 22،685: INFO / MainProcess] متصل بـ amqp: // guest : *@127.0.0.1: 5672 //[2017-06-08 15: 31: 22،703: INFO / MainProcess] الاختلاط: البحث عن الجيران[2017-06-08 15: 31: 23،202: INFO / SpawnPoolWorker-5] عملية تابعة 5124 استدعاء self.run ()[2017-06-08 15: 31: 23،207: INFO / SpawnPoolWorker-4] عملية تابعة 10848 استدعاء self.run ()[2017-06-08 15: 31: 23،208: INFO / SpawnPoolWorker-10] عملية تابعة 5296 استدعاء self.run ()[2017-06-08 15: 31: 23،214: INFO / SpawnPoolWorker-1] عملية تابعة 5752 استدعاء self.run ()[2017-06-08 15: 31: 23،218: INFO / SpawnPoolWorker-3] عملية تابعة 11868 استدعاء self.run ()[2017-06-08 15: 31: 23،226: INFO / SpawnPoolWorker-11] عملية تابعة 9544 استدعاء self.run ()[2017-06-08 15: 31: 23،227: INFO / SpawnPoolWorker-6] عملية تابعة 16332 استدعاء self.run ()[2017-06-08 15: 31: 23،229: INFO / SpawnPoolWorker-8] عملية تابعة 3384 استدعاء self.run ()[2017-06-08 15: 31: 23،234: INFO / SpawnPoolWorker-12] عملية تابعة 8020 استدعاء self.run ()[2017-06-08 15: 31: 23،241: INFO / SpawnPoolWorker-9] عملية الطفل 15612 استدعاء self.run ()[2017-06-08 15: 31: 23،243: INFO / SpawnPoolWorker-7] عملية تابعة 9896 استدعاء self.run ()[2017-06-08 15: 31: 23،245: INFO / SpawnPoolWorker-2] عملية الطفل 260 استدعاء self.run ()[2017-06-08 15: 31: 23،730: INFO / MainProcess] الاختلاط: وحده[2017-06-08 15: 31: 23،747: INFO / MainProcess] الكرفس @ PETRUS جاهز.[2017-06-08 15: 31: 49،412: INFO / MainProcess] المهمة المستلمة: perse.tasks.celery_add [524d788e-e024-493d-9ed9-4b009315fea3][2017-06-08 15: 31: 49،416: ERROR / MainProcess] حدث خطأ في معالج المهام: ValueError ('ليست هناك قيم كافية لفك الحزمة (المتوقع 3 ، حصلت على 0)' ،)Traceback (أحدث مكالمة أخيرة):ملف "c: \ program files \ python36 \ lib \ site -pack \ billiard \ pool.py" ، السطر 359 ، في Workloopالنتيجة = (صحيح ، تحضير_النتائج (متعة ( أرغز ، ** كوارز)))
ملف "c: \ program files \ python36 \ lib \ site -pack \ celery \ app \ trace.py" ، السطر 518 ، في _fast_trace_task
المهام ، قبول ، اسم المضيف = _loc
خطأ في القيمة: لا توجد قيم كافية لفك الضغط (المتوقع 3 ، حصلت على 0)

يصلح

انظر طلب السحب رقم 4078

Documentation Windows Not a Bug

التعليق الأكثر فائدة

لا بد لي من التأكيد: هذا الخطأ يظهر في

Celery 4.1.0
Windows 10 Enterprise 64 bit

عند تشغيل الأمر celery -A <mymodule> worker -l info

ويعمل الحل البديل التالي:

pip install eventlet
celery -A <mymodule> worker -l info -P eventlet

ال 13 كومينتر

FWIW لقد عملت على حل هذه المشكلة باستخدام تنفيذ تجمع الحدث الصغير (خيار سطر الأوامر "-P eventlet").

يجب ذكر حل drewdogg في البرنامج التعليمي.

لا بد لي من التأكيد: هذا الخطأ يظهر في

Celery 4.1.0
Windows 10 Enterprise 64 bit

عند تشغيل الأمر celery -A <mymodule> worker -l info

ويعمل الحل البديل التالي:

pip install eventlet
celery -A <mymodule> worker -l info -P eventlet

يكفي تعريف FORKED_BY_MULTIPROCESSING = متغير بيئة واحد لمثيل العامل.

auvipy العمل لي ، شكرا.

auvipy إنه يحل المشكلة حقًا :) 👍
يضيف:
استيراد نظام التشغيل
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING'، '1')
قبل تعريف مثيل الكرفس كافٍ

ربما يجب ذكر ذلك في المستندات؟ wonderfulsuccess الرعاية لإرسال طلب سحب؟

تضمين التغريدة

شكرا جزيلا

auvipy إنه يحل المشكلة حقًا
يضيف:
استيراد نظام التشغيل
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING'، '1')
قبل تعريف مثيل الكرفس كافٍ

شكرا يعمل!

auvipy إذا كان هذا سطرًا واحدًا فقط من التعليمات البرمجية لإصلاحه ، فلماذا لا يتم إصلاحه داخل الكرفس فقط ، بدلاً من استخدام المستندات لتوصية المستخدمين بتنفيذ حل بديل؟ لماذا لا يزال الخطأ الذي يكسر النظام الأساسي تمامًا مع مثل هذا الإصلاح البسيط يمثل مشكلة بعد ما يقرب من عامين؟

أين تريد وضع الكرفس هذا؟ أعتقد أن هذا مناسب تمامًا لتعليمات Windows المحددة. إذا كنت ترغب في إصلاحه في مستوى الكود ، فاحصل على العلاقات العامة المناسبة.

auvipy إنه يحل المشكلة حقًا :) 👍
يضيف:
استيراد نظام التشغيل
os.environ.setdefault ('FORKED_BY_MULTIPROCESSING'، '1')
قبل تعريف مثيل الكرفس كافٍ

أنت رائع ، شكرًا جزيلاً!

auvipy لقد بحثت عن إجابة لهذه المشكلة ، لقد قضيت الكثير من الوقت في محاولة إصلاح هذا ، شكرًا جزيلاً لك

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات