Асинхронный/параллельный подход к работе с (потенциально) растущей очередью задач.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Асинхронный/параллельный подход к работе с (потенциально) растущей очередью задач.

Сообщение Anonymous »

У меня есть список элементов, которые необходимо обработать, и я хочу иметь возможность обрабатывать их параллельно для повышения эффективности. Но во время обработки одного элемента я могу обнаружить больше элементов, которые необходимо добавить в список для обработки.
Я просмотрел библиотеки многопроцессорной и параллельной обработки, но не смог найдите особенность очереди такого типа, которую можно изменить во время выполнения или после ее передачи в пул. Есть ли решение, отвечающее моим желаниям?
Вот код, демонстрирующий то, что я хочу.
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»