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

Celery Worker启动Beat后出现未注册任务异常求助

解决Celery Beat启动后Worker提示任务未注册的问题

问题原因

Celery任务的唯一标识是模块名.任务函数名,你在beat_schedule里指定的任务名是my_beat_task,但Worker实际注册的任务全名是tasks.my_beat_task(任务定义在tasks.py模块中),导致Beat发送的任务找不到对应的注册项,触发未注册错误。

修复步骤

  1. 修改tasks.py中的beat_schedule配置,将任务名称改为带模块前缀的全名:
from celery import Celery

app = Celery('my_task', broker='redis://localhost', include=["tasks"])

app.conf.broker_connection_retry_on_startup = True

app.conf.beat_schedule = {
    'add-every-3-seconds': {
        'task': 'tasks.my_beat_task',  # 修正为模块名.任务函数名
        'schedule': 3.0,
    },
}


@app.task
def my_task():
    print('123')


@app.task
def my_beat_task():
    print('123')
  1. 重启Celery Worker和Beat进程,确保新配置生效。

验证方式

启动Worker后,查看日志中的任务注册信息,确认tasks.my_beat_task已被正常注册:

[2023-07-24 00:30:00,000: INFO/MainProcess] Tasks registered:
    'tasks.my_task',
    'tasks.my_beat_task'

内容的提问来源于stack exchange,提问作者Artem Filippov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:05:55