Django Celery Beat 2.8.0 每小时多次任务正常触发但每日任务未执行的问题求助
Django Celery Beat 2.8.0 每小时多次任务正常触发但每日任务未执行的问题求助
大家好,我碰到一个挺奇怪的问题,想请教下各位大佬:
- 那些配置成每小时内每隔几分钟执行的定时任务(比如
*/20 * * * *这种),Celery Beat的日志里能看到调度记录,Celery也能正常执行这些任务,完全没问题。 - 但是配置成每天执行一次的任务(比如
15 11 * * *)到了指定时间却毫无动静,Celery Beat的日志里连相关的调度记录都没有。
我特意查了数据库里的定时任务相关表,数据看起来都正常,唯一的问题是那些没触发的任务,last_run_at字段一直是null。
下面是对应任务的数据库查询记录:
查询周期任务表:
select * from django_celery_beat_periodictask where id=7;
查询结果:
id | name | task | args | kwargs | queue | exchange | routing_key | expires | enabled | last_run_at | total_run_count | date_changed | description | crontab_id | interval_id | solar_id | one_off | start_time | priority | headers | clocked_id | expire_seconds ----+----------------------------------------------+---------------------------------+------+--------+-------+----------+-------------+---------+---------+-------------+-----------------+-------------------------------+-------------+------------+-------------+----------+---------+------------+----------+---------+------------+---------------- 7 | hub_builtin__dhmaintenance.tasks.rotate_logs | dhmaintenance.tasks.rotate_logs | [] | {} | | | | | t | | 0 | 2025-09-25 04:39:20.172338+00 | | 6 | | | f | | | {} | |
对应的定时规则表:
select * from django_celery_beat_crontabschedule where id=6;
查询结果:
id | minute | hour | day_of_week | day_of_month | month_of_year | timezone ----+--------+------+-------------+--------------+---------------+---------- 6 | 30 | 0 | * | * | * | UTC
我已经确认过任务是启用状态(enabled字段为t),服务器时区和任务配置的UTC一致,定时规则看起来也没问题(每天0点30分执行),但就是没触发。有没有大佬碰到过类似的情况?或者能给我一些排查方向的建议吗?




