Wir unterhalten derzeit einen selbst entwickelten Python- "Webserver", auf dem das Generieren der Antwort für einige Anfragen sehr lange dauern kann, hauptsächlich aufgrund umfangreicher Berechnungen. Bei diesen Anfragen handelt es sich im Grunde genommen um Posts mit sehr langen Zeitüberschreitungen (denken Sie an Minuten bis Dutzende von Minuten).
Ein Problem dieser Architektur besteht darin, dass manchmal eine solche Anforderung abgebrochen werden muss - z. B. hat der Benutzer beim Konfigurieren der Anforderung einen Fehler festgestellt. Derzeit ist die Stornierung eine weitere Anfrage, die die langfristige Anfrage storniert - aber es gibt viele Lücken, z. B. was passiert, wenn der Kunde die Website einfach schließt?
Gegenwärtig planen wir, die hausgemachte Abscheulichkeit eines Webservers einzustellen und auf etwas Sinnvolles umzusteigen - z. B. Flask, der mit wfastcgi in einem IIS ausgeführt wird. Aus politischen Gründen ist IIS so eingestellt, dass der Wechsel zu etwas wie Gunicorn aus dem Fenster ist.
Alle Entwicklungen sind ins Stocken geraten, weil niemand eine Idee hat, wie die von (w) fastcgi ausgeführten Prozesse beendet werden können - diese Sorge ist einfach nicht Teil der fastcgi-Spezifikation.
Mein Gefühl ist, dass ein Versuch, etwas zu erstellen, das dies beinhaltet, ein Fehler ist. Ich würde eine Lösung vorziehen, bei der der Server solche rechenintensiven Aufgaben einfach einem Hintergrundserver (Flasche + Sellerie?) Und den Front-End-Umfragen dafür entlädt.
Leider war die alte Lösung so lange vorhanden, dass einige Entwickler das Verhalten um jeden Preis beibehalten möchten.
Da ich kein Webserver-Typ bin, möchte ich einige Tipps / Muster, wie vernünftige Lösungen für ein solches Problem aussehen könnten.