Jibé Barth

🇫🇷 Web developer

[Tips] Non blocking long api call

Published Apr 5, 2021

If you have to make some external API call during a process, but you have no need to wait the response to return result to the user, this tip can help you:

On Symfony, the kernel.terminate event is launched after the response has been sent to the user.

The response from symfony/http-client is by design asynchronous, but when the object is destroyed, it'll wait the request is completed (see here).

By keep the response instance and using it in kernel.terminate event, we don't have to wait the request is completed before render result to user.

If you use Laravel >= 8.x, you can also dispatch event after response is sent :