You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

celery.schedules crontab配置hour='*/1'执行频率异常的咨询

Celery定时任务crontab配置问题解析

问题原因

你配置的crontab(hour='*/1')之所以每分钟执行,是因为Celery的crontab类中,未指定的时间参数会使用默认值*(匹配该字段的所有可能值)。这里你只设置了hour='*/1',而minute参数默认是*,意味着每小时内的每分钟都满足触发条件,所以任务会每分钟执行一次。

正确配置方案

要实现每小时执行一次的需求,必须同时指定minute为固定值(比如0,代表每小时整点执行),修改后的代码如下:

'task-hourly': {
        'task': 'task',
        'schedule': crontab(minute=0, hour='*/1'),
        'options': {
            'queue': 'celery-periodic-queue'
        }
}

这样配置后,任务会在每小时的0分(如0:00、1:00、2:00...)执行一次,符合你预期的每小时执行一次的逻辑。

补充说明

Crontab的定时规则是多字段联合匹配的,分、时、日、月、周五个字段必须同时满足条件才会触发任务。任何未显式指定的字段都会默认使用*,即匹配该字段的所有值。比如文档中提到的hour='*/3',如果单独使用同样会导致每3小时内的每分钟都执行,正确的每3小时执行一次配置应为crontab(minute=0, hour='*/3')。

内容的提问来源于stack exchange,提问作者ignacio-varga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:23:34