He escrito un script php para verificar si hay archivos nuevos en una carpeta y, si existen archivos nuevos, subirlos a un servidor. Estos archivos pueden ser bastante grandes. Quiero ejecutar este script con frecuencia, digamos cada 5 minutos, como una tarea programada para que los archivos se trasladen al servidor lo antes posible. Sin embargo, una vez que el script ya está intentando cargar un archivo, no quiero que se ejecute nuevamente, ya que me temo que la segunda instancia sobrescribirá el archivo que ya se está cargando en el servidor.
¿Cómo puedo ejecutar el script como una tarea programada a menos que el script ya se esté ejecutando?
fuente
La forma habitual es probar algo global (a menudo un archivo vacío específico) cuando comienza la tarea. Si existe, la tarea ya se está ejecutando. De lo contrario, configure la cosa global, haga sus cosas, desarme la cosa global cuando la tarea esté terminada.
Esto tiene problemas si la tarea falla sin desarmar la cosa global. Es posible que desee desarmarlo siempre en la rutina de inicio de la computadora ya que la tarea no se puede ejecutar si ha reiniciado. Lo mejor es encontrar una cosa global que desaparezca automáticamente cuando finalice la tarea.
fuente