Der Webclient wird blockiert, während auf die Antwort gewartet wird, aber auf dem Server wird nichts blockiert, und Serverressourcen können verwendet werden, um andere Clients zu bedienen.Spielframework, das lange blockierende Aufgaben ausführt, ohne den Client zu blockieren
Einige der Clientanforderungen erfordern, dass mein Server lange blockierende Aufgaben ausführt. Ich verstehe, dass ich sie in einem separaten Thread-Pool ausführen kann.
Aber ich möchte auch nicht, dass der Client blockiert wird. Ich möchte nur eine sofortige Antwort an den Client (z. B. OK hat Ihre dicke lange blockierende Aufgabe) zurückgeben. Der Client kümmert sich nicht darum, das Ergebnis der Taskausführung zu erhalten, sondern muss nur wissen, dass ich an der Ausführung arbeite.
Wie kann ich dieses Verhalten im Spiel implementieren?
Ich denke, ich kann eine Auftragswarteschlange erstellen und einen anderen Thread verwenden, um die Auftragswarteschlange zu verarbeiten. Wenn der Spielcontroller den Job nur zur Warteschlange hinzufügt und der andere Thread die Jobs aus der Warteschlange ausführt. Soll ich das tun? Soll ich Akka Schauspieler benutzen? (Ich weiß nicht, Akka ich es müssen lernen)