Secuencia de comandos php que consume mucho tiempo: ¿POST normal o múltiples solicitudes AJAX?

Voy a darle un resumen del sistema. Tiene pedidos y cada pedido debe ser procesado por una API externa. Normalmente, se deben procesar alrededor de 100 200 pedidos a la vez, por lo que sería una tarea que llevaría mucho tiempo. Actualmente uso la solicitud de publicación normal con las identificaciones de pedido pasadas y he aumentado los recursos de PHP hasta cierto punto.

La principal preocupación: no sé si por alguna razón el script usa todos los recursos y se detiene. Esto es muy indeseable porque puede detenerse en cualquier momento durante la ejecución, la otra cosa es que no quiero asignar demasiados recursos porque sé que también es una mala idea.

Entonces, me preguntaba si uso múltiples solicitudes AJAX para cada pedido, ¿no sería mejor en realidad? Sin duda, tomaría más tiempo en general debido a la realización de la solicitud y la creación de instancias de los objetos y otras cosas cada vez. Pero estaré bastante seguro de que los recursos asignados no se agotarán y el script se completará con éxito. También me da la posibilidad de informar al usuario de forma interactiva sobre cuántos pedidos se han procesado.

Cualquier comentario de usuarios experimentados es bienvenido.

preguntado el 22 de mayo de 12 a las 12:05

2 Respuestas

Si ejecuta varias solicitudes AJAX, se ejecutarán en paralelo, por lo que tomará menos tiempo pero más recursos.

En mi opinión, debería usar AJAX porque, como dice, puede informar al usuario de los procesos y es mejor hacer esto que dejar que el usuario no sepa lo que está sucediendo.

Si estaba en una página y se congeló durante 30 segundos mientras se procesaba, no sabría si el script se había bloqueado o lo que sea, pero si fue durante 60 segundos pero le informaba del progreso, estaría más inclinado a esperar. para que termine.

También puede preprocesar los pedidos cuando se agregan y luego finalizar el procesamiento cuando se completaron los pedidos (dependiendo de su mecanismo de procesamiento de pedidos)

contestado el 22 de mayo de 12 a las 12:05

Estoy de acuerdo con las solicitudes de ajax e informar al usuario ... eso es lo que estaba pensando también, solo que no sé cuántas solicitudes simultáneas se pueden hacer. El preprocesamiento no es una opción. - Ilian Andreev

Incluso si no lo hace a través de AJAX (usando solicitudes sincrónicas en JavaScript), obtendrá el efecto deseable de informar al usuario, pero luego solo se envía una solicitud a la vez. - andres willis

Aceptaré su respuesta debido al esfuerzo y las extensas respuestas que dio, en realidad coincidieron con mi comprensión: Ilian Andreev

Una llamada ajax, capaz de manejar> 1 orden podría ser aún mejor, sin conocer los detalles de su sistema. Las llamadas ajax continuas también son un recurso (servidor).

contestado el 22 de mayo de 12 a las 12:05

También pensé en eso, pero gracias por el comentario de todos modos :) - Ilian Andreev

Sería bueno, pero el problema sería que, según el tamaño de cada pedido y la cantidad de pedidos enviados, necesitaría escribir el script para ordenar los datos de publicación por tamaño y enviar paquetes, lo que requiere más scripts tanto en el lado del cliente y del servidor. Sin embargo, si cada pedido es del mismo tamaño, sería más fácil. - andres willis

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.