Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 让芹菜广播所有工人的返回结果_Python_Celery_Celery Task - Fatal编程技术网

Python 让芹菜广播所有工人的返回结果

Python 让芹菜广播所有工人的返回结果,python,celery,celery-task,Python,Celery,Celery Task,有没有办法从芹菜广播任务的每个工作人员那里获得所有结果?我想监督所有工人是否一切顺利。如果您能提供一份发送任务的员工名单,我们将不胜感激。不,这不容易做到 但您不必将自己局限于内置的amqp结果后端, 您可以使用Kombu()发送自己的结果, 芹菜使用的消息传递库是: from celery import Celery from kombu import Exchange results_exchange = Exchange('myres', type='fanout') app = Ce

有没有办法从芹菜广播任务的每个工作人员那里获得所有结果?我想监督所有工人是否一切顺利。如果您能提供一份发送任务的员工名单,我们将不胜感激。

不,这不容易做到

但您不必将自己局限于内置的amqp结果后端, 您可以使用Kombu()发送自己的结果, 芹菜使用的消息传递库是:

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\u或\u acquire
将使用芹菜创建一个新的
kombu.producer

代理连接池。

因此,如果我理解正确,您会让使用者(任务执行者)成为发回结果的生产者吗?现在事情真的变得复杂了:)