Вот что я пытаюсь достичь: существует длительный процесс, т. Е. Потребитель кролика. Когда он получает конкретное сообщение, он должен начать параллельный процесс, который что-то делает (независимо ... печатать, спать в течение минуты ...) и заканчивается. Тем временем основной процесс по-прежнему потребляет сообщения.Запустить процесс async - может/должен использовать asyncio?
Этого сценарий может быть упрощен к этому примеру:
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 должно быть использовано для, или я должен придерживаться многопроцессорных/пронизывающих модулей?
Что такое проблема с 'threading'? – Arman
Если вы хотите, чтобы он выполнялся одновременно, то потоки или asyncio - это то, что вы хотите, учитывая ваш стиль выбора. Если вы хотите, чтобы он работал в _parallel_, тогда посмотрите на многопроцессорность – Will
Как будет сказано, потоки будут давать вам одновременно, но только mutliprocessing даст вам параллель – Fredrik