现象:周期任务crontabschedule正常,使用的是Asia/Shanghai时区,不是UTC。而设置定时任务clockedschedule发现不触发。
原因:django_celery_beat的clockedschedule任务是默认是用UTC时区的,就算设置了下面这些也没用作用

# 使用django_celery_beat插件用来动态配置任务!
CELERY_ENABLE_UTC = False
CELERY_TIMEZONE = TIME_ZONE
DJANGO_CELERY_BEAT_TZ_AWARE = False  ##如果设置USE_TZ=False 关闭 celery 时区感知
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'

解决方法:修改clockedschedule.py文件
以最小影响去修改代码,尽量不影响原来代码,

vi venv/lib/python3.6/site-packages/django_celery_beat/clockedschedule.py
import pytz ##导入模块
...省略...
    def __init__(self, clocked_time, nowfun=None, app=None):
        """Initialize clocked."""
        cn_zone = pytz.timezone('Asia/Shanghai')              ##1.新增
        self.clocked_time = clocked_time.astimezone(cn_zone)  ##2.新增
        #self.clocked_time = maybe_make_aware(clocked_time)   ##3.注释
        super().__init__(nowfun=nowfun, app=app)
...省略...

效果图:
8899.png