celery -A proj report
in die Ausgabe aufgenommen.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
self.retry()
raise erhöhensend_task
und legen Sie expires
Die Aufgabe sollte es erneut versuchen, bis die Ablaufzeit erreicht ist oder der Wert max_retries erreicht ist
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'
Eine Problemumgehung, die das Problem zu beheben scheint – Neuzuweisung des Werts von self.request.expires
vor der Erhöhung von self.retry()
.
Dh in der Run-Methode:
self.request.expires = dateparser.parse(self.request.expires)
raise self.retry()
wahrscheinlich ist das behoben und wir können es schließen? @thedrow
Sieht aus wie ein Duplikat.
Bitte versuchen Sie es mit der neuesten RC und prüfen Sie, ob das Problem behoben ist.
Wenn nicht, kommentieren Sie hier und wir werden wieder öffnen.
Hilfreichster Kommentar
Eine Problemumgehung, die das Problem zu beheben scheint – Neuzuweisung des Werts von
self.request.expires
vor der Erhöhung vonself.retry()
.Dh in der Run-Methode: