这就是我想要实现的目标:这是一个漫长的过程,即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,还是应该坚持使用多处理/线程模块?