celery中时区问题
# 想将celery中的时区换成中国的,要注意:
延时任务的时区设置和定时任务的时区设置是相互独立的
# 特别鸣谢:
该文章详细说明了为什么定时任务的时间设置在延时任务中不生效
https://www.jianshu.com/p/681eb15681f7
1延时任务
# 使用美国时间
eta=datetime.utcnow() + timedelta(seconds=50)
# 手动将中国时间提前8小时,转化成对应的美国时间
eta=datetime.now() + timedelta(seconds=50) # eta =当前的utc时间+ 50s延时
eta = eta + timedelta(hours = -8) # 将美国时间转化成对应的中国时间
2 定时任务
# 修改celery的配置信息
# 修改定时任务使用的时区
app.conf.timezone = 'Asia/Shanghai' # app.conf是整个celery的配置信息
# 是否使用UTC时间
app.conf.enable_utc = False
# 注意事项:
1.该方式修改时区对延时任务不生效