Guía 47 – Control de un único Proceso en ejecución

Es frecuente que en las aplicaciones  existan procesos «pesados» y por lo tanto «lentos» que deseamos que los usuarios no los puedan ejecutar varias veces en un periodo corto de tiempo o que estos procesos se ejecuten de uno en uno, para no sobrecargar el servidor, y así seguir dando buen tiempo de respuesta al resto de procesos y usuarios.

También, nos puede surgir el mismo problema cuando queremos que un recurso de nuestro sistema sólo esté accedido por un único proceso, quedándose a la espera de ser liberado para el resto de procesos que requieran ese recurso.

Algunos ejemplos que pueden requerir esta gestión de proceso único, son:

  • La recarga o copia de información desde otro sistema (proceso batch masivo).
  • Copia de seguridad de datos o copia de respaldo de backup previos
  • Elaboración de informes muy pesados. Procesos de cierre o reconfiguración del sistema.
  • Utilización de un recurso del server (fichero, puerto serie, USB, certificado digital, etc.)
  • Etc.

Objetivo

Disponer de una lógica, en los proyectos desarrollados en PHPRunner, para controlar:

  • Que un proceso específico sólo este en ejecución una única vez y el resto de peticiones que concurran las rechace el sistema.
  • Que un proceso específico sólo este en ejecución una única vez y que el resto de peticiones concurrentes se encolen y se liberen según el orden de llegada (cola FIFO).

DEMO:  https://fhumanes.com/single_execution/

Si te interesa este tema y deseas obtener el código, cliquea aquí para acceder al artículo