【问题标题】:Django Celery Worker Not reciving the TasksDjango Celery Worker 没有收到任务
【发布时间】:2017-10-11 11:38:53
【问题描述】:

每当我运行 celery worker 时,我都会收到警告

./manage.py celery worker -l info --concurrency=8

如果我忽略了这个警告,那么我的芹菜工人没有收到芹菜节拍任务

googled之后我也改了worker名字,但是这次我没有收到警告但是celery worker仍然没有收到celery beat定时任务

我查看了 celery beat 日志,celery beat 可以按时调度任务。

我还检查了芹菜花及其显示两个工人,第一个工人正在接收任务而不执行它,如何将所有任务发送给第二个工人?或者我如何禁用第一个 kombu 工人,我缺少什么 djagno-celery 设置?

我的 django settings.py

RABBITMQ_USERNAME = "guest"
RABBITMQ_PASSWORD = "guest"
BROKER_URL = 'amqp://%s:%s@localhost:5672//' % (RABBITMQ_USERNAME, 
RABBITMQ_PASSWORD)
CELERY_DEFAULT_QUEUE = 'default'
CELERY_DEFAULT_EXCHANGE = 'default'
CELERY_DEFAULT_ROUTING_KEY = 'default'
CELERY_IGNORE_RESULT = True
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
celery_enable_utc=True
import djcelery
djcelery.setup_loader()

【问题讨论】:

  • 你检查过你没有运行任何你不知道的奇怪的后台芹菜任务吗?您在终端中从ps ax | grep celery 得到什么输出?

标签: python django rabbitmq celery django-celery


【解决方案1】:

您仅启用了工人。对于要执行的任务,您必须在 your_task.delay () 函数的帮助下调用该任务。 例如,打开另一个终端,输入您的项目,然后运行python manage.py shell 命令。进入项目 Django 的 shell 时,导入任务并运行命令your_task.delay () 在以下链接中,有一个带有rabbitmq broker的celery代码示例,建议您学习一下: https://github.com/celery/celery/tree/master/examples/django

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 2021-11-09
    • 2012-06-06
    相关资源
    最近更新 更多