public function cleanUp(Repository $repository) { if (!$this->isAlive()) { $repository->retireWorkerWithPid($this->pid); } }
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; }