簡體   English   中英

向 celery 中的特定消費者發送消息(通過路由密鑰)

[英]Send message to specific consumer in celery (via routing key)

Celery是否支持專門向特定的消費者/客戶端發送消息,例如通過路由密鑰?

默認情況下RabbitMQ機器可以使用直接隊列作為目標,但我試圖通過 Celery 實現相同的行為

@app.task
def add(x, y):
    return x + y


# something like this
add.delay(1, 2, "machine-xyz")

您可以將worker-xyz運行為-Q worker-abc-queue以使其偵聽特定隊列,然后在調用任務以路由它時指定此隊列名稱

add.apply_async((1, 2), {}, queue='worker-abc-queue')

另一種方法是在 Celery app.task裝飾器中設置queue參數,如果在您的情況下不需要以編程方式路由每條消息,這將很方便。

@app.task(queue='YOUR_QUEUE_NAME')
def add(x, y):
    return x + y

# so you don't need to specify queue or routing key every time when your code invokes it.
add.delay(1, 2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM