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

django-celery-beat生成任务但Celery Worker未接收问题求助

Django-Celery-Beat 与 Celery Worker 异常问题

使用 ElasticMQ 作为消息中间件(Broker),Celery Beat 已成功创建定时任务,但 Celery Worker 始终无法接收任务。尝试重启 Worker 和 Beat 后问题仍未解决。

相关代码片段

核心配置代码

app = Celery("app")
logger = get_task_logger(__name__)

CELERY_CONFIG = {
    "CELERY_TASK_SERIALIZER": "json",
    "CELERY_ACCEPT_CONTENT": ["json"],
    "CELERY_RESULT_SERIALIZER": "json",
    "CELERY_RESULT_BACKEND": None,
    "CELERY_ENABLE_UTC": True,
    "CELERY_ENABLE_REMOTE_CONTROL": False,
}

BROKER_URL = "sqs://user:password@sqs:9324/"

CELERY_CONFIG.update(
    {
        "BROKER_URL": BROKER_URL,
        "BROKER_TRANSPORT": "sqs",
        "BROKER_TRANSPORT_OPTIONS": {
            "region": "us-west-2",
            "use_ssl": False,
            "visibility_timeout": 3600,
            "polling_interval": 60,
        },
    }
)

app.conf.update(**CELERY_CONFIG)
app.config_from_object("django.conf:settings", namespace="CELERY")

任务代码

@celery.app.task()
def beat_task() -> None:
    logger.info("Starting beat task...")
    time.sleep(2)
    logger.info("Done beat task.")

定时任务配置

CELERY_BEAT_SCHEDULE = {
    "beat_task": {
        "task": "app.tasks.beat_task",
        "schedule": timedelta(seconds=10),
    },
}

当前现象

  • Worker 端始终无法打印任务中的日志信息
  • 相关截图说明:
    • Celery Worker 截图:显示 Worker 已正常启动并连接到指定 SQS Broker
    • Beat 发送队列截图:显示 Beat 已将定时任务发送至对应队列
    • Worker 未接收任务截图:显示 Worker 长时间无任务接收记录

内容的提问来源于stack exchange,提问作者Davidson Co

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:35:03