Asynchrone Abarbeitung von Tasks über Channels
13.03.2023, 00:00 Uhr
Aufgabenverteilung
Channel
Sollen innerhalb eines Prozesses verschiedene voneinander abhängige Dienste weitestgehend autark arbeiten können, bietet es sich an, die Zwischenergebnisse über Queues (First-in-First-out-Listen) von einem zum nächsten Dienst zu übertragen. Seit .NET Core 3.0 gibt es neben den klassischen Auflistungsklassen wie Queue oder ConcurrentQueue den bislang noch recht unbekannten Typ Channel<T>, der speziell für diese Aufgabenstellung entwickelt wurde.
In vielen technischen Prozessen muss man auf asynchron eingehende Informationen reagieren. Das können beispielsweise Messwerte sein, die verarbeitet und angezeigt werden sollen, oder Bestellungen, die abzuarbeiten sind. Verschiedene Arbeitsschritte sind zu durchlaufen, können aber oftmals parallel abgearbeitet werden. So muss die Verarbeitung einer Bestellung (Zusammensuchen der Ware und Verpacken derselben) nicht mit der nächsten Bearbeitung warten, bis der Logistiker das Paket ausgeliefert hat, sondern kann unabhängig vom Versand weitere Aufträge abarbeiten.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar