Celery: Π—Π°Π΄Π°Ρ‡ΠΈ с истСчСниСм срока дСйствия Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ с ошибкой AttributeError (Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 'str' Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° 'isoformat'Β»,)

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 12 июн. 2017  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: celery/celery

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ список

  • [x] Π― Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π² этот выпуск Π²Ρ‹Π²ΠΎΠ΄ celery -A proj report .
    (Ссли Ρƒ вас Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ возмоТности, Ρ‚ΠΎ хотя Π±Ρ‹ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Celery
    вСрсия Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Π°).
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. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ, которая повторяСт ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Raise 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 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ