Python многопоточный просмотр очереди - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть многопоточная программа, в которой есть поток управления, который через равные промежутки времени помещает задания различных типов в очередь, совместно используемую многими рабочими потоками, которые выбирают задания по мере их поступления в очередь (это queue.SimpleQueue). Время, необходимое рабочему потоку для завершения sh задания, может сильно различаться, поэтому в основном мне нужно из потока управления узнать, находится ли данный тип задания в очереди, чтобы избежать добавления другого такого же тип. Однако я не вижу возможности заглянуть в очередь.

1 Ответ

0 голосов
/ 01 апреля 2020

Вам необходимо использовать отдельную структуру данных для отслеживания задач, поставленных в очередь. Хорошая идея - создать уникальный идентификатор задачи для каждой задачи и поместить их в словарь.

Когда задача завершается, вы устанавливаете атрибут (скажем, done=True), используя этот идентификатор задачи.

Использование внешнего хранилища данных (например, базы данных или Redis) может быть проще в распределенной системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...