Python 芹菜任务队列不使用rabbitmq

Python 芹菜任务队列不使用rabbitmq,python,rabbitmq,celery,django-celery,Python,Rabbitmq,Celery,Django Celery,芹菜任务在没有队列的情况下成功执行 设置 BROKER_URL = "amqp://user:pass@localhost:5672/test" # Celery Data Format CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERYD_TASK_SOFT_TIME_LIMIT = 60 CELERY_IGNORE_RESULT = True @app.task def t

芹菜任务在没有队列的情况下成功执行

设置

BROKER_URL = "amqp://user:pass@localhost:5672/test"
# Celery Data Format
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'

CELERYD_TASK_SOFT_TIME_LIMIT = 60
CELERY_IGNORE_RESULT = True

@app.task
def test(a,b,c):
    print("doing something here...")
命令

celery worker -A proj -E -l INFO
celery worker -A proj -E -l INFO -n worker.high -Q high
上述安装辅助程序正在成功执行

我已经将队列引入芹菜任务

在以前的设置中添加了配置

from kombu.entity import Exchange, Queue

CELERY_QUEUES = (
    Queue('high', Exchange('high'), routing_key='high'),
    Queue('normal', Exchange('normal'), routing_key='normal'),
    Queue('low', Exchange('low'), routing_key='low'),
)

CELERY_DEFAULT_QUEUE = 'normal'
CELERY_DEFAULT_EXCHANGE = 'normal'
CELERY_DEFAULT_ROUTING_KEY = 'normal'

CELERY_ROUTES = {
    'myapp.tasks.test': {'queue': 'high'},
}
命令

celery worker -A proj -E -l INFO
celery worker -A proj -E -l INFO -n worker.high -Q high
召唤


当我在队列中执行时,worker没有运行。我是否错过了任何配置?

将芹菜路径更改为芹菜任务路径-在版本4中更改了

首先,确保在rabbit和high worker日志中都建立了连接

然后,尝试将芹菜路线更改为:

或使用队列调用任务,例如:

test_task = test.signature(args=(1, 2, 3), queue='high', immutable=True)
test_task.apply_async()

兔子和芹菜日志里面有什么信息吗?我没有添加任何芹菜日志。我会加上它。我需要在rabbitmq上为芹菜配置队列名称吗?你不必在rabbit上做任何事情,只要确保rabbit正在该端口和接口上运行和侦听,如果你在linux机器上,并且有权访问shell运行的netstat-putan | grep 5672yes running and listing。当我添加@app.taskqueue='high'时,它就起作用了。