systemadmin.es > LAMP y web > Gestión de procesos periódicos en PHP

Gestión de procesos periódicos en PHP

Algo que es sorprendentemente común es ver como se acumulan procesos colgados en el cron. La solución puede depender de cómo se quiere gestionar estos casos, pero en general se suele obviar la solución más simple.

La gran mayoría de deaemons escriben en un fichero de texto su PID al arrancar para tanto comprobar si ya se estan ejecutando como para facilitar a los scripts su gestión de arranque y parada. Los procesos periódicos que se ejecutan vía cron no tienen porque ser diferentes.

Simplemente escribiendo el PID del proceso PHP en un fichero de texto podemos hacer que el proceso compruebe si existe un proceso ya arrancado y decidir que hacer en ese caso.

En PHP podemos usar la función getmypid() que permite obtener el PID. Podemos comprobarlo mandando el proceso a background para ver si coincide:

# echo "" | php &
[1] 27345
# 27345

Conocido dicho identificador de proceso podremos añadir a los procesos periódicos la suficiente lógica como para gestionar correctamente su ejecución evitando tener procesos colgados en el sistema durante meses.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>