Status bewerbung nachfragen Muster

Angenommen, Sie möchten den zuvor eingeführten «Wrapper»-Akteur verwenden. Sie möchten die Meldung «Suchen» senden, und dann benötigen Sie das Ergebnis. Um dies mit dem Ask-Muster zu tun, haben Sie möglicherweise folgendes wie das folgende: In der Zwischenzeit, wenn Sie tiefer schauen, ist es offensichtlich, dass unser Planungsservice die Last nicht verarbeitet. Wir haben erwartet, dass sie aufgrund der ziemlich komplexen Logik, die damit verbunden ist, skaliert werden muss, aber jetzt scheint es, dass sie so schlecht läuft, dass sie das Projekt gefährdet. Wir können das Problem durch Skalierung mildern, aber selbst dann könnte es sich als zu langsam erweisen. Bei weiteren Untersuchungen ist klar, dass die Anwendung nur in der Lage ist, eine kleine Anzahl gleichzeitiger Projekte zu verarbeiten. Es stellt sich heraus, dass wir Blockierungsvorgänge eingeführt haben, die alle Threads verbrauchen, was wiederum die Anwendung lähmt. Eines der Hauptmerkmale von Akteuren ist ihre Fähigkeit, den Zustand auf threadsichere Weise zu verwalten. Dies ist ein wichtiges Feature zu verstehen, aber Sie müssen sich auch bewusst sein, dass es mehr als eine Möglichkeit, diesen Zustand zu verwalten, und jede Option könnte seine Verwendung haben, je nach Situation.

Es ist auch wertvoll, diese Muster zu kennen, so dass, wenn Sie in den Code einer anderen Person schauen, Können Sie das Muster erkennen und die Motivation dahinter verstehen. An diesem Punkt verfügt Ihre Anwendung über einen Zustandsprüfendpunkt mit Standardverhalten. Das Zustandsmuster ist so eingestellt, dass zwei Hauptprobleme gelöst werden:[3] Einige Entitäten, z. B. ein Kunde, können eine große Anzahl von Ereignissen haben. Um das Laden zu optimieren, kann eine Anwendung in regelmäßigen Abständen eine Momentaufnahme des aktuellen Status einer Entität speichern. Um den aktuellen Status zu rekonstruieren, findet die Anwendung den neuesten Snapshot und die Ereignisse, die seit diesem Snapshot aufgetreten sind. Infolgedessen gibt es weniger Ereignisse, die wiedergegeben werden müssen. Wenn Sie unreine Funktionen innerhalb eines Akteurs verwenden, müssen Sie sicherstellen, dass Sie dies im Kontext der Einfädel-Illusion tun. Um dies zu tun, sollten Sie immer das Rohrmuster bevorzugen, wenn Sie mit Futures arbeiten. Manchmal kann es von Vorteil sein, einen Wrapper wie für das Repository zu erstellen.

Dieser Wrapper isoliert die Zukunft, so dass Sie sich nur an einem Ort Darum kümmern und der Rest des Systems sie ignorieren kann. Aber noch besser ist, wenn Sie die Zukunft vollständig vermeiden und andere Techniken an seiner Stelle verwenden können. Eine bessere Lösung ist die Verwendung des Rohrmusters in Akka. Mit dem Pipe-Muster können Sie eine Zukunft und «Rohr» das Ergebnis dieser Zukunft zu einem anderen Schauspieler zu nehmen. Das Ergebnis ist, dass der Akteur das Ergebnis dieser Zukunft zu einem bestimmten Zeitpunkt oder einen Status.Failure erhält, wenn die Zukunft nicht abgeschlossen wird. Wenn Sie den vorherigen Code ändern, um das Rohrmuster zu verwenden, könnte er wie folgt aussehen: Im ursprünglichen Muster wurden nur abgeschlossene Aufgaben beschriftet.