因此,我有兩個工人服務器(芹菜)在同一個rabbitmq服務器中使用兩個虛擬主機。我將一個變量傳遞給我的messagecenter.py文件,以指定應該使用哪個代理url來發布任務。經過一段時間的調試後,我發現一旦芹菜與代理網絡建立了連接 - 它不會與以前的虛擬主機斷開連接並連接到新的虛擬主機。我不確定芹菜的交換和裝訂是如何工作的。所以任何幫助,高度讚賞。芹菜路由任務到錯誤的工作服務器
messagecenter.py/
from celery import Celery
MESSAGE_SETTINGS = {
"WORKER1": "amqp://user1:[email protected]:5672/vhost1",
"WORKER2": "amqp://user2:[email protected]:5672/vhost2"
}
class MessageCenter(object):
def __init__(self, config):
self._config = config
self._celery = Celery()
def produce_task(self, name, uuid, params):
self._celery.conf.update(
BROKER_URL = self._config[name])
self._celery.send_task(uuid, params)
而且我是 'WORKER1' 或 'WORKER2' 通過必要的PARAMS發佈的任務,即沿send_task。我希望有一種方法可以將我的任務正確地路由到不同的服務器。任何幫助將不勝感激。