2 votes

Laravel : Solution pour traiter plusieurs tâches en utilisant HttpClient ?

J'ai une série d'emplois Laravel qui se connectent à une API externe, récupèrent des données et traitent les données. Parce que ce sont des données très différentes, je les ai divisées en plusieurs emplois (GET_DATA_A, GET_DATA_B, ...)

Mais chaque travail crée un nouveau HttpClient (Guzzle) et une nouvelle connexion à l'API, ce qui rend l'API très lente.

Y a-t-il une solution pour utiliser un seul HttpClient (avec keep-alive) pour tous les emplois?

Cordialement

0voto

Bernard Wiesner Points 35

Il est possible d'atteindre cela car le travailleur de la file d'attente est un processus à longue exécution.

Tant que vos paramètres pour le travailleur de la file d'attente ne le font pas quitter prématurément (comme un faible nombre maximal d'emplois ou un faible temps maximal), cela devrait être possible.

Vous devez utiliser le pattern singleton pour réutiliser le client guzzle. Ensuite, vous pouvez réutiliser le même client à travers vos emplois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X