Webanwendungsoperationen sollen im Allgemeinen schnell sein, um lange Wartezeiten für Benutzer zu vermeiden. Einige Operationen, die die Webanwendung ausführen kann, können jedoch rechenintensiv sein und eine gewisse Zeit beanspruchen. Was ist die beste Vorgehensweise in REST bei solchen Vorgängen, die einige Minuten dauern können und dennoch eine sofortige Reaktion auf die Benutzer erfordern? Ist es in Ordnung, dass die Webanwendung mehrere Minuten benötigt, um die Antwort der HTTP-Anforderung zurückzugeben, oder ist es besser, eine 202-Antwort im Hintergrund an einer anderen Stelle zu senden und dem Benutzer dann eine Form der Benachrichtigung bereitzustellen?Lang andauernde Operationen in der Webanwendung
Antwort
Ist es in Ordnung für die Web-Anwendung mehrere Minuten in Anspruch nehmen die Antwort des HTTP-Anforderung
Nr Ein Teil des Problems mit diesem Ansatz zurückzukehren, ist, dass, wenn der Server nicht anerkennt die Der Kunde wird nicht rechtzeitig wissen, dass er sein beabsichtigtes Ziel erreicht hat.
Ist es besser, eine Antwort 202 zurückzugeben, im Hintergrund irgendwo anders zu arbeiten und dem Benutzer dann eine Form der Benachrichtigung zu geben?
Ja. Das ist genau das, was 202 Accepted für
entwickelt wurde Die 202 Antwort ist absichtlich unverbindlich. Ihr Zweck besteht darin, einem Server zu ermöglichen, eine Anforderung für einen anderen Prozess (möglicherweise einen stapelorientierten Prozess, der nur einmal pro Tag ausgeführt wird) zu akzeptieren, ohne dass die Verbindung des Benutzeragenten mit dem Server bestehen bleibt, bis der Prozess abgeschlossen ist. Die Repräsentation, die mit dieser Antwort gesendet wird, sollte den aktuellen Status der Anfrage beschreiben und auf einen Statusmonitor zeigen (oder einbetten), der dem Benutzer eine Schätzung liefern kann, wann die Anfrage erfüllt wird.
Es kann helfen, denke ich, daran zu erinnern, dass wir über Ihre Integrationsdomäne sprechen; Der Kunde spricht nicht mit Ihrer App. Stattdessen sprechen Sie mit Ihrer API, die vorgibt, eine Website zu sein, in die der Client integriert werden kann. Ihr Client sendet die Anfrage an die API und die API antwortet mit einer akzeptierten Nachricht, die von einer Reihe von Links begleitet wird, die dem Client helfen, mit dem Protokoll fortzufahren und schließlich sein Ziel zu erreichen.
- 1. Wie lang andauernde Aufgaben ausführen?
- 2. Wicket: Wie man lang andauernde Aufgaben bewältigt
- 3. Empfehlung zu Spottdiensten für lang andauernde Ausfallsicherheitstests?
- 4. Lang andauernde Aufgabe, wenn Aktivität zerstört wird
- 5. testdieses Muster für lang andauernde Tests
- 6. Fortschrittsbenachrichtigung in WCF für lang andauernde Prozesse - Wie?
- 7. Lang andauernde Abfrage in JDBC stoppen oder beenden
- 8. Stoppt eine lang andauernde Aktion in web2py mit Multiprocessing
- 9. Wie eine lang andauernde Suche in System.DirectoryServices.Protocols aufgeben
- 10. Wo leben lang andauernde Prozesse in einer React + Redux-Anwendung?
- 11. Eine lang andauernde Parse Betrieb auf dem Hauptthread wird
- 12. Lang andauernde Aufgaben mit Rückrufen zu Aktivitäten oder Fragmenten
- 13. Lang andauernde Client-Server-Verbindung zwischen zwei Geräten
- 14. ASP.Net Session State für lang andauernde Auth Plätzchen
- 15. Wird die lang andauernde readOnly-Transaktion andere Anforderungen verlangsamen?
- 16. Was passiert, wenn Sie eine lang andauernde Alter-Abfrage beenden?
- 17. WinForm Anwendung UI Hangs während lang andauernde Operation
- 18. Wie kann man executionTimeout für eine lang andauernde Abfrage erhöhen?
- 19. Wie identifiziert man eine lang andauernde Abfrage in der SQL Server-Datenbank?
- 20. Airflow - lang andauernde Aufgabe in SubDag, die nach einer Stunde als ausgefallen markiert wurde
- 21. nUnit Test Adapter 10 Sekunden Grenze: lang andauernde Tests in nUnit
- 22. tgamma() lang lang typecasting
- 23. Wie man mit lang laufenden Webservice-Operationen umgeht?
- 24. Wie beende ich eine lang andauernde Aufgabe auf Tomcat, wenn AWS AutoScaling die EC2-Instanz beendet?
- 25. Die beste Methode zum Erstellen einer REST-API für lang andauernde Aufgaben?
- 26. Parse.enableLocalDatastore() - Warnung: Eine lang andauernde Operation wird auf dem Hauptthread ausgeführt
- 27. Wie kann ich eine lang andauernde Funktion stoppen, wenn sie mehrmals aufgerufen wird?
- 28. Tastenkürzel in der Webanwendung
- 29. konvertieren Zeichenfolge in lang lang
- 30. Reihenfolge der Operationen in Ruby