Celery忽略了参数" queue"并向所有队列发送消息

时间:2012-05-10 04:04:14

标签: python celery

我使用芹菜和redis作为经纪人。

我构建了一个添加任务,并运行两个工作人员侦听不同的队列进行测试。

celeryd -I tasks -l info -Q tasks
celeryd -I tasks -l info -Q count

这是tasks.py

from celery.task import task

@task(exchange="tasks")
def add(x, y):
    result = x + y
    return "I am queue 2.", result

但是,无论我是否分配了队列,两个队列都会运行任务。

如果有什么我误解,请告诉我。非常感谢。

以下是celeryconfig.py

BROKER_URL = "redis://localhost:6379/0"

# Redis Backend
CELERY_RESULT_BACKEND = "redis"
CELERY_REDIS_HOST = "localhost"
CELERY_REDIS_PORT = 6379
CELERY_REDIS_DB = 0
CELERY_SEND_EVENTS = True
CELERY_RESULT_BACKEND = "amqp"
CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}

# CELERY_DEFAULT_QUEUE = "default"
CELERY_DEFAULT_EXCHANGE = "default"
CELERY_QUEUES = {
    "default": {
        "exchange": "default"
    },
    "tasks": {
        "exchange": "tasks"
    },
    "count": {
        "exchange": "tasks"
    }
}

0 个答案:

没有答案