Celery: 만료된 μž‘μ—…μ€ AttributeError("'str' κ°œμ²΄μ— 'isoformat' 속성이 μ—†μŠ΅λ‹ˆλ‹€.",)와 ν•¨κ»˜ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 06μ›” 12일  Β·  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 λ“±κΈ‰