Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Nur nacheinander abarbeiten bei http get

  Alt 10. Mär 2019, 08:32
Es finden GUI-Zugriffe und Tabellen-Zugriffe statt und das crasht natürlich, wenn das parallel passiert. Und das tut es leider, weil ja jeder request in dem idHTTPServer einen eigenen Thread erzeugt.

Ist eine Critical Section bereits eine Lösung? Oder gibt es eine andere Möglichkeit?
TIdHTTPServer ist eine Multithreading-Komponente und startet einen Thread pro HTTP Verbindung. Aus dem Kontext dieses Threads wird OnCommandGet aufgerufen, und aus diesem Thread darf nur synchronisiert auf den Mainthread zugegriffen werden (mit synchronize oder mittels TThread.Queue).

Wenn der Server durch mehrere Anfragen überlastet ist, so sollte er einen passenden HTTP Responsecode zurückliefern und Behandlung des Requests beenden.

Zu blockieren ist nicht sinnvoll, denn wenn mehrere CPU Kerne untätig sind würde so nur einer verwendet.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat