Exemplo n.º 1
0
 public static function run($scriptName)
 {
     $fileName = basename($scriptName) . '.lock';
     $lockFile = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $fileName;
     self::$fileHandle = fopen($lockFile, 'wb');
     if (!flock(self::$fileHandle, LOCK_EX | LOCK_NB)) {
         throw new InstanceAlreadyRunningException($scriptName);
     }
 }
Exemplo n.º 2
0
 public static function run($fileName, $callback)
 {
     $logger = new Logger($fileName);
     try {
         SingleInstance::run($fileName);
     } catch (InstanceAlreadyRunningException $e) {
         $logger->log('Already running');
         self::$finished = true;
         exit(1);
     }
     $logger->log('Working');
     register_shutdown_function([get_class(), 'shutdown'], $logger);
     try {
         $callback($logger);
     } catch (Exception $e) {
         $logger->log($e);
         $logger->log('Finished with errors');
         self::$finished = true;
         exit(1);
     }
     $logger->log('Finished');
     self::$finished = true;
     exit(0);
 }