Celery在主线程中获得任务结果

时间:2018-02-21 14:51:08

标签: python python-3.x celery

我正在使用连接到RabbitMQ队列的Celery,这个队列在服务器上填充并在另一个队列上继续。

我希望从没有后端的工作人员执行的任务中获得所有结果。

示例:

from celery import Celery
import tasks

# Initialize Celery
app = Celery('tasks', broker='pyam')

if __name__ == '__main__':
    app.start()
    # I wan't to get all the results here with something like that:
    while True:
        app.results.get()

他们有没有办法做到这一点,或者至少在这个程序中取得结果而不是将任务添加到RabbitMQ的程序?

我也可以将结果放在数据库或队列中并使用它们,但如果可能的话我想避免这种情况。

提前感谢所有答案

1 个答案:

答案 0 :(得分:0)

您可以尝试按照here所述检查队列中的工作人员!

# Inspect all nodes.
i = app.control.inspect()

# Specify multiple nodes to inspect.
i = app.control.inspect(['worker1.example.com',
                        'worker2.example.com'])

# Specify a single node to inspect.
i = app.control.inspect('worker1.example.com')