Tengo un script index.php
que utilizo como una URL posterior a la confirmación en un sitio de Google Code. Esta secuencia de comandos clona un directorio y crea un proyecto que puede tomar algún trabajo. Quiero evitar que este script se ejecute más de una vez en paralelo.¿Cómo puedo asegurarme de tener solo una instancia de un script PHP ejecutándose a través de Apache?
¿Existe un mecanismo que pueda usar para evitar ejecutar ese script si ya hay otro en sesión?
rebaño nunca utilizado() hasta el momento, gracias por la respuesta! – powtac
@LongEars Mencione que este código realmente ejecuta otra instancia en Windows, ya que 'LOCK_NB' no funciona allí de acuerdo con el manual de PHP en' flock'. Esperará en 'flock' hasta que las instancias anteriores finalicen, y luego ejecutará todo el código. –
Además, para garantizar que esto funcione como se espera, puede cambiar el modo fopen a: '$ fp = fopen ('/ tmp/php-commit.lock', 'c'); ' Usar 'r +' arrojaría un error de PHP si el archivo commit.lock aún no existe. – DoctorFox