有没有办法从芹菜广播任务的每个工人那里获得所有结果?我想监控所有工人是否一切正常。将任务发送到的工人列表也将不胜感激。
问问题
1035 次
1 回答
7
不,这不容易。
但是您不必将自己限制在内置的 amqp 结果后端,您可以使用 Kombu ( http://kombu.readthedocs.org ) 发送自己的结果,这是 Celery 使用的消息传递库:
from celery import Celery
from kombu import Exchange
results_exchange = Exchange('myres', type='fanout')
app = Celery()
@app.task(ignore_result=True)
def something():
res = do_something()
with app.producer_or_acquire(block=True) as producer:
producer.send(
{'result': res},
exchange=results_exchange,
serializer='json',
declare=[results_exchange],
)
producer_or_acquire
kombu.Producer
将使用 celery 代理连接池创建一个新的。
于 2013-04-02T14:33:13.780 回答