Example #1
0
 /**
  * @param string $task_name
  * @param string $command
  * @param string $timeout
  * @param string $garbage_collect
  *
  * @return integer
  */
 public function execute($task_name, $command, $timeout, $garbage_collect)
 {
     if ($garbage_collect === TRUE) {
         $this->logger->info('garbage collecting for task ' . $task_name);
         $this->driver->garbage_collect($task_name);
     }
     $this->logger->info('lock_holder id is ' . $this->lock_holder->get_lock_holder());
     $this->logger->info('trying to get lock for task ' . $task_name);
     $lock_id = $this->driver->get_lock($task_name, $timeout, $this->lock_holder->get_lock_holder());
     if ($lock_id !== FALSE) {
         $this->logger->info('executing task ' . $task_name . ' ...');
         $this->logger->info('<command output>');
         $start_time = time();
         $exit_code = $this->runner->execute($command);
         $end_time = time();
         $elapsed_time = $end_time - $start_time;
         $this->logger->info('</command output>');
         $this->logger->info('finished ' . $task_name . ' after ' . $elapsed_time . ' seconds with exit code ' . $exit_code);
         $this->driver->release_lock($task_name, $lock_id);
         return $exit_code;
     }
     $this->logger->info('no lock available for ' . $task_name);
     return 0;
 }
Example #2
0
 /**
  * @param \Ingenerator\RunSingle\LockDriver $driver
  * @param string                            $task_name
  * @param int                               $timeout
  */
 public function given_no_lock_is_available($driver, $task_name, $timeout)
 {
     $driver->get_lock($task_name, $timeout, Argument::type('string'))->willReturn(FALSE);
 }