Django+Celery任务时间总是不对的【半】解决方案

Django+Celery任务时间总是不对的【半】解决方案

方案一:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'UTC' 
USE_I18N = True
USE_L10N = True
USE_TZ = True

DJANGO_CELERY_BEAT_TZ_AWARE = True 
CELERY_TIMEZONE = TIME_ZONE  
# 默认值为False,开启扩展任务结果属性写入RESULT_BACKEND(name, args, kwargs, worker, retries, queue, delivery_info)
CELERY_RESULT_EXTENDED = True

方案二:

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
DJANGO_CELERY_BEAT_TZ_AWARE = False 
CELERY_TIMEZONE = TIME_ZONE  
# 默认值为False,开启扩展任务结果属性写入RESULT_BACKEND(name, args, kwargs, worker, retries, queue, delivery_info)
CELERY_RESULT_EXTENDED = True

这两个方案都可以让程序正常运行,时间显示只有在【周期性任务】中的【上次运行时刻】不对,比实际时间少8个小时,Task results的时间都显示正常。另外,【CELERY_RESULT_EXTENDED】这个参数要开启,否则在运行结果里很多参数都不显示。