No entiendo porqué no lo configurás directamene en tu cron? Tu server
es GNU/Linux? podés crear tu cron desde cualquier usuario
Esto te da 2 problemas:
1) la pagina que activa este trigger, se alenta
2) si la pagina que activa el trigger no es visitada con frecuencia
(minimo una vez por minuto) tu cron puede no correrse a tiempo
Desde PHP podrias editar el cron-table para el usuario de apache con
system() o exec() por si no tenes acceso directo al cron.
> Solucion a los problemas:
> 1) Se puede hacer el include el trigger al final cuando ya todo el
> contenido fue enviado al cliente... y además por
> eso pregunté por un pseudo cron mejorcito que el que he encontrado que
> utiliza un archivo para procesar la tabla de
> trabajos.
Esto te genera otro problema. ¿Qué pasa si el usuario decide no cargar la
página por completo y sólo la inicia pero se arrepiente y le da al botón
back o a cualquier otra opción. Hay una opción en php (de la cual no me
recuerdo en este momento) la cual se llama algo así como ignore_user_abort,
obvio para que sirve en este caso, y tenés que tener en cuenta eso para
utilizar el cron. Otra cosa que tenés que tomar en cuenta es el tiempo en
que tarda en ejecutar tu script, porque si tenés un máximo de 30 segundos y
por alguna razón tu script toma 29, para el cron te queda 1 segundo. Tampoco
podés ponerle tiempo 0 porque puede en algún punto crear un ciclo infinito
(nunca falla la ley de Murphy) y es mejor que antes de hacer el include y la
llamada a el cron, le agregues un tiempo extra de ejecución, que si al final
no manda nada, pues ya esta cargada la página y el cron se ejecuta.
Esto te genera otro problema. ¿Qué pasa si el usuario decide no cargar la
página por completo y sólo la inicia pero se arrepiente y le da al botón
back o a cualquier otra opción. Hay una opción en php (de la cual no me
recuerdo en este momento) la cual se llama algo así como ignore_user_abort,
obvio para que sirve en este caso, y tenés que tener en cuenta eso para
utilizar el cron. Otra cosa que tenés que tomar en cuenta es el tiempo en
que tarda en ejecutar tu script, porque si tenés un máximo de 30 segundos y
por alguna razón tu script toma 29, para el cron te queda 1 segundo. Tampoco
podés ponerle tiempo 0 porque puede en algún punto crear un ciclo infinito
(nunca falla la ley de Murphy) y es mejor que antes de hacer el include y la
llamada a el cron, le agregues un tiempo extra de ejecución, que si al final
no manda nada, pues ya esta cargada la página y el cron se ejecuta.