Django Celery Worker 没有收到任务
Django Celery Worker Not reciving the Tasks
每当我是 运行 芹菜工人时,我都会收到警告
./manage.py celery worker -l info --concurrency=8
如果我忽略了这个警告,那么我的 celery worker 就没有收到 celery beat 任务
在googled之后我也改了worker的名字,但是这次没有收到警告但是celery worker还是没有收到celery beat的定时任务
我查看了celery beat日志,celery beat按时调度了任务。
我还检查了芹菜花,它显示了两个工人,第一个工人正在接收任务但没有执行,如何将所有任务发送给第二个工人?或者我如何禁用第一个 kombu worker,我缺少的 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()
您只启用了工作器。对于要执行的任务,您必须在 your_task.delay ()
函数的帮助下调用该任务。
比如打开另一个终端,输入你的项目,然后运行python manage.py shell
命令。当进入你的项目 Django 的 shell 时,导入你的任务和 运行 命令 your_task.delay ()
下面link中有一个使用rabbitmq broker的celery代码示例,建议大家研究一下:
https://github.com/celery/celery/tree/master/examples/django
每当我是 运行 芹菜工人时,我都会收到警告
./manage.py celery worker -l info --concurrency=8
如果我忽略了这个警告,那么我的 celery worker 就没有收到 celery beat 任务
在googled之后我也改了worker的名字,但是这次没有收到警告但是celery worker还是没有收到celery beat的定时任务
我查看了celery beat日志,celery beat按时调度了任务。
我还检查了芹菜花,它显示了两个工人,第一个工人正在接收任务但没有执行,如何将所有任务发送给第二个工人?或者我如何禁用第一个 kombu worker,我缺少的 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()
您只启用了工作器。对于要执行的任务,您必须在 your_task.delay ()
函数的帮助下调用该任务。
比如打开另一个终端,输入你的项目,然后运行python manage.py shell
命令。当进入你的项目 Django 的 shell 时,导入你的任务和 运行 命令 your_task.delay ()
下面link中有一个使用rabbitmq broker的celery代码示例,建议大家研究一下:
https://github.com/celery/celery/tree/master/examples/django