У меня есть очередь из 500 процессов, которые я хочу запустить через скрипт Python, я хочу запускать все N процессов параллельно.
Что мой скрипт Python делает до сих пор: он запускает N процессов параллельно, ожидает завершения всех из них, затем запускает следующие N файлов.
Что мне нужно сделать: Когда один из N процессов завершен, автоматически запускается другой процесс из очереди, не ожидаяостальные процессы завершаются.
Примечание: я не знаю, сколько времени займет каждый процесс, поэтому я не могу запланировать запуск процесса в определенное время.
код, который у меня есть.В настоящее время я использую subprocess.Popen, но я не ограничен его использованием.
for i in range(0, len(queue), N):
batch = []
for _ in range(int(jobs)):
batch.append(queue.pop(0))
for process in batch:
p = subprocess.Popen([process])
ps.append(p)
for p in ps:
p.communicate()