Una mejor manera sería poner esta tarea en segundo plano y lejos del servidor web.
PHP se basa en solicitudes y debe finalizar esas solicitudes lo antes posible.
Lo que debe hacer es ejecutar PHP en la línea de comandos, reutilizar su código o reescribirlo en un lenguaje más adecuado. De esa manera no hay límite en cuanto tiempo puede funcionar.
- ¿Existe un complemento de WordPress que captura los leads de correo electrónico y también crea un nuevo usuario de WP?
- ¿Los sitios de Apple, Tesla, Evernote, están hechos de WordPress?
- .NET Framework: ¿Cuál es la mejor manera de prepararse para el examen MCTS 70-515 de Microsoft?
- ¿Cuál es la mejor / más rápida / más potente plataforma de E / S sin bloqueo impulsada por eventos NodeJS o ReactPHP? O tal vez otra plataforma?
- ¿Debo usar Ruby o Java para aplicaciones web en la nube?
Sin embargo, la mejor solución, la prueba más estable y más futura sería implementar una cola. Parece que está procesando “algo” que tiene un índice y no tiene una relación inmediata con el siguiente elemento. Entonces, si llena esos elementos en una cola, que puede ser solo una tabla de base de datos o, por ejemplo, RabbitMQ, no solo puede automatizarlo procesando las cosas a medida que ingresan, sino también procesarlas en paralelo y tal vez reducir el largo tiempo de ejecución.
Editar: si tiene que recogerlo como lo describe y no puede implementar ninguna de las otras soluciones debido a restricciones en el entorno, entonces creo que la solución que eligió, guardando un puntero al siguiente elemento, parece buena.