Wie gehe ich mit lang laufenden Webservice-Vorgängen um?

Ich muss eine Java EE-Anwendung erstellen, die große Dokumente in verschiedene Formate konvertiert. Jede Konvertierung dauert zwischen 10 Sekunden und 2 Minuten. Die SOAP-Anfragen werden von einer Client-Anwendung gestellt, die ich ebenfalls erstellen muss.

Was ist der beste Weg, um mit diesen lang laufenden Anfragen umzugehen? Es ist klar, dass der Vorgang zu lange dauert, ohne dass dem Benutzer eine Rückmeldung gegeben wird.

Ich kann mir die folgenden Möglichkeiten vorstellen, um eine Art Feedback zu geben, aber ich bin mir nicht sicher, ob es keinen besseren Weg gibt, vielleicht etwas Standardisiertes.

Der Client führt die Anforderung von einem Thread aus und der Server sendet das Dokument in der Antwort. Dies kann einige Minuten dauern. Bis dahin zeigt der Client eine Meldung "Bitte warten", Fortschrittsanzeige usw. Dies scheint einfach zu implementieren zu sein.)Der Client sendet einen Befehl "Konvertierung starten". Der Server gibt eine Art von @ zurüJob-I, mit dem der Client häufig nach einer Statusaktualisierung oder dem endgültigen Dokument fragt. Dies scheint benutzerfreundlich zu sein, da ich einen Fortschritt anzeigen kann, aber auch den Status des Servers erfordern muss.)Der Client sendet einen Befehl "Konvertierung starten". Der Server benachrichtigt den Client irgendwie, wenn er fertig ist. Hier weiß ich nicht mal, wie das geht)

Gibt es noch andere Ansätze? Welches ist das Beste in Bezug auf Leistung, Stabilität, Fehlertoleranz, Benutzerfreundlichkeit usw

Danke für deine Antworten

Antworten auf die Frage(4)

Ihre Antwort auf die Frage