У меня есть список элементов, которые необходимо обработать, и я хочу иметь возможность обрабатывать их параллельно для повышения эффективности. Но во время обработки одного элемента я могу обнаружить больше элементов, которые необходимо добавить в список для обработки.
Я просмотрел библиотеки многопроцессорной и параллельной обработки, но не смог найдите особенность очереди такого типа, которую можно изменить во время выполнения или после ее передачи в пул. Есть ли решение, отвечающее моим желаниям?
Вот код, демонстрирующий то, что я хочу.
i = 0
jobs_to_be_processed = [f'job{(i:=i+1)}' for _ in range(5)]
def process_job(job):
if int(job[-1]) % 3 == 0:
jobs_to_be_processed.append(f'new job{(i:=i+1)}')
# do process job ...
pass
# Add jobs to a pool that allows `jobs_to_be_processed`
# to have jobs added while processing
pool = AsyncJobPool(jobs_to_be_processed)
pool.start()
pool.join()
Подробнее здесь: https://stackoverflow.com/questions/783 ... task-queue
Асинхронный/параллельный подход к работе с (потенциально) растущей очередью задач. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение