No sé cómo lees esos siete mil registros, ni el procesamiento que realizas con ellos, pero a mi parece excesivo ese tiempo de tres horas... ¿Los pides uno a uno? ¿No se pueden pedir en bloques?
Es un foreach() de un listado de
Links; leo el
link con el Mechanize, obtengo un código, se lo paso al API que me regresa un JSON que guardo en una tabla; el ciclo recorre más o menos siete mil
links...
Yo creo que sí, siempre y cuando la segunda ejecución tenga presente que puede estar existiendo una ejecución anterior. Quiero decir: el programa puede realizar todas las operaciones que quiera, siempre y cuando sus cálculos no se refieran a información que todavía no ha sido almacenada o procesada por la ejecución anterior (que aún no ha terminado). Si, en cambio, con los nuevos siete mil registros, necesito realizar alguna operación que tenga en cuenta que los anteriores siete mil registros han sido almacenados o procesados, pues no puedo hacerlo, porque no lo están.
Solo recogerá información y la guardará. La pregunta radica en que este
script ejecutará una búsqueda de la información según la configuración del
admin. Ejemplo: buscar registro con un valor mayor a tal número, buscar registros de tal localidad, etc... Y como se ejecutará desde un
cron, es posible que se ejecute el
script y luego otro pero el anterior no habrá finalizado... son como 20 de estos que se ejecutarán en X horario.
Si el cuello de botella no es tu programa, entonces será del servidor que te da la información... Sin más detalles, poco más se puede decir
Debido a que es un
webservice creo, bueno, un API para cada ciclo; él recoge la información, imagino que es lo mismo que hacerlo con un navegador, es algo como leer
https://api.pagina.com/items/ID:500... La idea general es como un
webspider o
crawler, digamos.