Tengo una solicitud CURL, donde a veces, y también dependiendo de la carga de la solicitud, toma minutos recibir respuesta de la API, debido al procesamiento y los cálculos.
En aras de una buena experiencia de usuario, no se desea tener este comportamiento. Mientras espera la respuesta, a veces durante mucho tiempo, el usuario no puede realizar ninguna función en el sitio web.
Así que estoy buscando soluciones sobre cómo hacerlo para que el usuario pueda usar la aplicación mientras esta aplicación espera los resultados de la API.
Soluciones que ya he considerado.
Grabar la solicitud y usar el trabajo cron para procesarla. Desafortunadamente, hay un par de trampas en eso. -Necesidad de ejecutar un trabajo cron cada minuto o constantemente. - Situaciones en las que la solicitud del usuario es mínima o la API es súper rápida en este momento, la solicitud completa solo puede demorar entre 2 y 3 segundos. Pero cuando usa cron y se solicitó, digamos 30 segundos antes de la próxima ejecución del trabajo cron, termina con un resultado de 32 segundos. Entonces, esta solución puede mejorar algo y empeorar algo, no estoy seguro si realmente me gusta eso.
Cancelación de la solicitud CURL después de unos segundos. Aunque la API envía una respuesta separada al punto final de URL de mi elección, y parece seguro finalizar la transmisión después de publicar la solicitud, puede haber una situación en la que esos pocos segundos no sean suficientes para establecer la conexión con la API. Supongo que lo que estoy tratando de decir es que, con la finalización de CURL, no tengo forma de saber si la solicitud real se realizó.
¿Hay otro enfoque que podría considerar? Gracias.
Parece que lo que está pidiendo es una llamada cURL asíncrona.