启动异步进程 - 可以/应该使用asyncio吗?

时间:2016-02-24 21:54:55

标签: python python-asyncio

这就是我想要实现的目标:这是一个漫长的过程,即rabbitmq消费者。当它收到一条特定的消息时,它应该启动一个并行的进程来执行某些操作(无论是打印,睡眠一分钟......)并完成。与此同时,主要流程仍然会消息。

此方案可以简化为此示例:

import time

@this_should_run_in_parallel
def background_foo():
    for _ in range(3):
        print('zxc')
        time.sleep(1)

for k in range(10):
    print('abc')
    if k == 5:
        background_foo()
    time.sleep(1)

# for loop is printing abc
# but once k == 5 the parallel function also start printing
# for loop goes on
# desired output

abc
abc
abc
abc
abc
zxc
abc
zxc
abc
zxc
abc
abc
abc

是应该使用asyncio,还是应该坚持使用多处理/线程模块?

1 个答案:

答案 0 :(得分:1)

asyncio可以解决这个问题,但您必须根据任务的性质选择合适的工具:

Asyncio flow chart

链接: