/ / Verarbeitung mehrerer ausgehenden API-Aufrufe in einer PHP-Webanwendung - PHP, Multithreading, Zeromq, Curl-Multi

Verarbeitung mehrerer ausgehenden API-Aufrufe in einer PHP-Webanwendung - PHP, Multithreading, Zeromq, Curl-Multi

Ich arbeite an einer PHP (Zend Framework) Webanwendung, die für jede Benutzeranforderung mehrere Aufrufe an externe APIs (SOAP und / oder REST über HTTP) aufruft.

Im Moment sind die API-Aufrufe sequenziell:

  • Rufen Sie API A auf, warten Sie etwa 1 Sekunde auf Ergebnisse
  • Rufen Sie API B auf, warten Sie ungefähr 1 Sekunde auf Ergebnisse
  • Senden Sie die Seite zurück an den Benutzer

In diesem Fall besteht keine Abhängigkeit oder Beziehung zwischen den APIs A und B; Ich möchte einfach die Seite mit allen Informationen so schnell wie möglich zurückgeben.

Im Moment denke ich an:

curl_multi_exec () würde meinen Client-Code für die APIs A und B enger binden, als ich es möchte.

ZeroMQ scheint komplexer zu implementieren, und ich bin mir nicht sicher, wie ich die Arbeitsprozesse und Sockets verwalten soll.

Hat jemand dieses Verhalten in einer PHP / Apache-Anwendung ohne viel Aufwand erfolgreich implementiert?

Antworten:

1 für die Antwort № 1

Klingt wie du einen Cache brauchst. Sie sind ziemlich einfach zu machen und können entweder Dateisystem oder jede Datenbankerweiterung sein.