AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Long running Rest API Call mit THTTPClient
Thema durchsuchen
Ansicht
Themen-Optionen

Long running Rest API Call mit THTTPClient

Ein Thema von Christoph Schneider · begonnen am 27. Jun 2018 · letzter Beitrag vom 27. Nov 2018
Antwort Antwort
Benutzerbild von Christoph Schneider
Christoph Schneider

Registriert seit: 7. Okt 2008
Ort: CH-Baar
56 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Long running Rest API Call mit THTTPClient

  Alt 27. Jun 2018, 21:32
Mit einem eigenen Prozess wäre zwar das Memory Leak entschärft, dafür müsste eine Interprozesskommunikation (bpsw. mit einer Pipe) alle eintreffenden Meldungen an den startenden Prozess übermitteln. Da erscheint mir der Aufwand zum Ertrag (keine aufsummierenden Memory Leaks mehr) gar etwas hoch. Beide Lösungen (Thread Kill vs. Prozess Kill) sind ein Murks.

Aus meiner Sicht müsste es wenigstens auf Api Level möglich sein, ein gestarter HTTP Request vom aufrufenden Thread in allen Fällen (also auch ohne Empfang von Daten) jederzeit wieder zu stoppen.
Ich glaube, ich schaue jetzt mal wie das unter Windows gemacht werden könnte.

Danke für die vielen wertvollen Ideen.
Christoph Schneider
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Long running Rest API Call mit THTTPClient

  Alt 28. Jun 2018, 09:46
Hast du ein Beispiel für eine öffentliche REST-Schnittstelle mit long running requests?
Meine bisherigen Erfahrungen mit REST habe ich nur mit Schnittstellen gemacht, die innerhalb von einer handvoll Sekunden geantwortet haben.
  Mit Zitat antworten Zitat
Benutzerbild von Christoph Schneider
Christoph Schneider

Registriert seit: 7. Okt 2008
Ort: CH-Baar
56 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Long running Rest API Call mit THTTPClient

  Alt 28. Jun 2018, 11:34
Ja, ich beschäftige mich im Moment mit der Anbindung von der Google Firebase Realtime DB. Dort werden Long running Rest API Calls für Server Events eingesetzt.

Details gibt es hier:
https://firebase.google.com/docs/ref...tion-streaming

Ich bin mir am überlegen, ob ich meine Library für Firebase/Firestore und Google-Storage nach Fertigstellung als Open-Source Projekt auf Git verfübar machen soll.
Wer Interesse am Thema hat, darf sich gerne bei mir melden.
Christoph Schneider
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.165 Beiträge
 
Delphi 12 Athens
 
#4

AW: Long running Rest API Call mit THTTPClient

  Alt 28. Jun 2018, 14:01
Gemeldet
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Long running Rest API Call mit THTTPClient

  Alt 28. Jun 2018, 16:56
Ich muss nochmal simpel nachfragen:

Ein Aufruf von ExecuteAsync von dem TRESTRequest genügt deinen Anforderungen nicht?

Delphi-Quellcode:
var
  CompletionHandler: TProc;
  MyThread: TRESTExecutionThread;
begin
  CompletionHandler := procedure
    begin
      Memo1.Lines.Add(RESTResponse1.Content);
    end;

  MyThread := RESTRequest1.ExecuteAsync(CompletionHandler, True, False);
  //
  // ... irgendwas machen...
  //
  MyThread.Free;
  Mit Zitat antworten Zitat
Benutzerbild von Christoph Schneider
Christoph Schneider

Registriert seit: 7. Okt 2008
Ort: CH-Baar
56 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Long running Rest API Call mit THTTPClient

  Alt 29. Jun 2018, 16:58
Ich fand leider noch keine Zeit TRESTExecutionThread mal in dieser Situation auszuprobieren.
Aus meiner Sicht liegt die Ursache aber im zugrunde liegenden HTTP-Request der im Betriebssystem hängt, wenn keine Daten empfangen werden. Die THTTPRequest-Klasse hat diesen Fall vermutlich schlicht nicht vorgesehen, denn mit kurzen Timeouts läuft diese Situation im Regelfall ja gut. Ich müsste vermutlich ein Cancel auf das Handle (HINTERNET) von Request machen können.
Christoph Schneider
  Mit Zitat antworten Zitat
Benutzerbild von Christoph Schneider
Christoph Schneider

Registriert seit: 7. Okt 2008
Ort: CH-Baar
56 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Long running Rest API Call mit THTTPClient

  Alt 2. Jul 2018, 09:36
Ich habe heute zu diesem Fall einen Eintrag in der Quality-Zentrale von Embarcadero vorgenommen:
https://quality.embarcadero.com/browse/RSP-20827
Christoph Schneider
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz