Celery: المهام التي تنتهي صلاحيتها تفشل مع AttributeError ("الكائن 'str' ليس له سمة 'isoformat'" ،)

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

قائمة تدقيق

  • [x] لقد قمت بتضمين ناتج celery -A proj report في الإصدار.
    (إذا لم تكن قادرًا على القيام بذلك ، فعليك على الأقل تحديد الكرفس
    الإصدار المتأثر).
software -> celery:4.0.2 (latentcall) kombu:4.0.2 py:3.6.1
            billiard:3.5.0.2 py-amqp:2.1.4
platform -> system:Darwin arch:64bit imp:CPython
loader   -> celery.loaders.default.Loader
settings -> transport:amqp results:disabled

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

  1. قم بإنشاء مهمة تعيد المحاولة عن طريق رفع self.retry()
  2. اتصل بالمهمة مع send_task وقم بتعيين expires

سلوك متوقع

يجب أن تعيد المهمة المحاولة حتى يتم الوصول إلى وقت انتهاء الصلاحية أو الوصول إلى قيمة max_retries

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

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/celery/app/task.py", line 684, in retry
    S.apply_async()
  File "/usr/lib/python3.6/site-packages/celery/canvas.py", line 221, in apply_async
    return _apply(args, kwargs, **options)
  File "/usr/lib/python3.6/site-packages/celery/app/task.py", line 535, in apply_async
    **options
  File "/usr/lib/python3.6/site-packages/celery/app/base.py", line 729, in send_task
    root_id, parent_id, shadow, chain,
  File "/usr/lib/python3.6/site-packages/celery/app/amqp.py", line 334, in as_task_v2
    expires = expires and expires.isoformat()
AttributeError: 'str' object has no attribute 'isoformat'
Bug Report Duplicate ✘ Has Testcase ✔

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

حل بديل يظهر لإصلاح المشكلة - إعادة تعيين قيمة self.request.expires قبل رفع self.retry() .

أي في طريقة التشغيل:

self.request.expires = dateparser.parse(self.request.expires)
raise self.retry()

ال 3 كومينتر

حل بديل يظهر لإصلاح المشكلة - إعادة تعيين قيمة self.request.expires قبل رفع self.retry() .

أي في طريقة التشغيل:

self.request.expires = dateparser.parse(self.request.expires)
raise self.retry()

ربما تم إصلاح هذا ويمكننا إغلاقه؟ thedrow

يبدو وكأنه نسخة مكررة.
يرجى تجربة أحدث RC ومعرفة ما إذا كان قد تم حل المشكلة.
إذا لم يكن كذلك ، فقم بالتعليق هنا وسنعيد فتحه.

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