Удалить элемент из середины очереди? - PullRequest
3 голосов
/ 18 ноября 2011

Можно ли удалить элемент и иметь очередь для многопоточности, переупорядочить себя в Python?

У меня есть пользователи, стоящие в очереди в очереди, но когда придет время обработать пользователя и если пользователь отключится, это вызовет проблему.

Есть ли способ сделать это?

Спасибо

1 Ответ

3 голосов
/ 18 ноября 2011

Queue объекты не обеспечивают произвольный доступ.Однако вы можете достичь той же цели, сохранив ссылки на объекты в очереди где-то еще и пометив их как устаревшие.Когда объект читается из очереди, потребитель может проверить, не устарел ли объект, и, если это так, выбросить его и прочитать снова.

Вы также можете найти значение в классе PriorityQueueгде вы помещаете (priority, message) вместо просто message в очередь, а данные с самым низким значением priority всегда являются следующими считанными из очереди.Это само по себе не решит вашу проблему, но может дать вам способ расставить приоритеты для самого старого запроса или что-то в этом роде.

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