Example #1
0
 public function cleanUp(Repository $repository)
 {
     if (!$this->isAlive()) {
         $repository->retireWorkerWithPid($this->pid);
     }
 }
Example #2
0
 public static function retireDeadWorkers(Repository $roster, Clock $clock, Interval $consideredDeadAfter)
 {
     $now = $clock->current();
     $consideredDeadAt = clone $now;
     $consideredDeadAt->sub($consideredDeadAfter->toDateInterval());
     $deadWorkers = $roster->deadWorkers($consideredDeadAt);
     $jobsToReassign = [];
     foreach ($deadWorkers as $deadWorker) {
         $roster->retireWorkerWithId($deadWorker['_id']);
         if (array_key_exists('assigned_to', $deadWorker)) {
             if (array_key_exists((string) $deadWorker['_id'], $deadWorker['assigned_to'])) {
                 $jobsToReassign[] = $deadWorker['assigned_to'][(string) $deadWorker['_id']];
             }
         }
     }
     return $jobsToReassign;
 }