Я пытаюсь запустить бесконечный цикл while, который вызовет функцию, выполняющую вызов API. Каждый вызов API может занять от 9 до 12 секунд, и я хочу, чтобы x процессов постоянно работали.
Я пробовал некоторые из существующих примеров пула, но они, кажется, принимают функцию вместе со списком аргументов. Моя функция генерирует все необходимые входные данные.
from multiprocessing import Process
from random import randint
from time import sleep
def loop_a():
while 1:
wait = randint(5,9)
print("now waiting" + str(wait) + " seconds")
sleep(wait)
if __name__ == '__main__':
#Initialize two separate while loops that can call/wait for responses independently
Process(target=loop_a).start()
Process(target=loop_a).start()
Этот пример кода, который я нашел из другого вопроса, в основном решает мою проблему, но мне интересно, есть ли элегантный способ определить, сколько процессов нужно запустить одновременно. Я хотел бы иметь возможность вводить число процессов в качестве параметра, а не определять новую строку для каждого процесса. Есть ли хороший способ сделать это?
Кажется, этот фрагмент исправляет проблему, с которой я столкнулся.
if __name__ == '__main__':
[Process(target=loop_a).start() for x in range(2)]