簡體   English   中英

Django celery beat錯誤:TypeError('astimezone()參數1必須是datetime.tzinfo,而不是tuple',)

[英]Django celery beat error: TypeError('astimezone() argument 1 must be datetime.tzinfo, not tuple',)

我正在使用Django 1.8和celery 4.0.2。 當我開始芹菜跳動時,它會引發TypeError

celery beat v4.0.2 (latentcall) is starting.
__    -    ... __   -        _
LocalTime -> 2017-03-13 20:38:22
Configuration ->
    . broker -> redis://127.0.0.1:6379//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%WARNING
    . maxinterval -> 5.00 minutes (300s)
[2017-03-13 20:38:23,094: CRITICAL/MainProcess] beat raised exception <type 'exceptions.TypeError'>: TypeError('astimezone() argument 1 must be datetime.tzinfo, not tuple',)
Traceback (most recent call last):
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/apps/beat.py", line 107, in start_scheduler
    service.start()
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/beat.py", line 537, in start
    interval = self.scheduler.tick()
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/beat.py", line 255, in tick
    for e in values(self.schedule)]
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/beat.py", line 134, in is_due
    return self.schedule.is_due(self.last_run_at)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 612, in is_due
    rem_delta = self.remaining_estimate(last_run_at)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 601, in remaining_estimate
    return remaining(*self.remaining_delta(last_run_at, ffwd=ffwd))
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 538, in remaining_delta
    last_run_at = self.maybe_make_aware(last_run_at)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 81, in maybe_make_aware
    return maybe_make_aware(dt, self.tz)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/utils/time.py", line 326, in maybe_make_aware
    dt, timezone.utc if tz is None else timezone.tz_or_local(tz),
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/utils/time.py", line 301, in localize
    dt = dt.astimezone(tz)
TypeError: astimezone() argument 1 must be datetime.tzinfo, not tuple

我的芹菜設置是

CELERY_BROKER_URL = 'redis://127.0.0.1:6379',
CELERY_TIMEZONE = 'Asia/Shanghai',
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler',
CELERY_RESULT_BACKEND = 'django-db'

我將時區配置為“亞洲/上海”,並使用本地主機redis。 為什么芹菜跳動會引發此錯誤?

您需要刪除每行末尾的逗號。 'Asia/Shanghai',是一個元組而不是字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM