2

ブローカーとしてredisでセロリを使用しています。

add タスクを作成し、2 つのワーカーを実行して、テストのために異なるキューをリッスンします。

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"
    }
}
4

0 に答える 0