Queue shutdown
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 36k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Add a shutdown method to queue class (threading queue, multiprocessing, asyncio) which causes all future puts to raise (a queue.QueueShutdown) and all future gets once the queue is empty to also raise, unblocking all waiters. An optional argument immediate=True will skip the requirement for the queue to be empty.
This will enable producers and consumers to use the queue to know when to stop. This is important because both producers and consumers can be blocked waiting on the queue.
Previous discussion:
Linked PRs
- gh-96474
- gh-102499
- gh-104225
- gh-104228
- gh-104230
- gh-104750
- gh-115265
- gh-115838
- gh-116699
- gh-117621
- gh-138828
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Überprüfe die verknüpften pull requests und die vorherige Diskussion zur Queue-Terminierung, bevor du beginnst, da die Arbeit bereits an mehreren Stellen untersucht wurde. Das angeforderte Verhalten betrifft threading queue, multiprocessing queue und asyncio: Das Herunterfahren sollte zukünftige put-Aufrufe ablehnen, wartende Aufrufer entsperren und get-Aufrufe nach dem Leeren eine Ausnahme auslösen lassen, wobei immediate=True das Leeren umgeht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100