externalServices)) { $this->externalServices = [$service]; return $this; } if (!in_array($service, $this->externalServices)) { $this->externalServices []= $service; } return $this; } public function check(bool $update = false): bool { $errors = []; foreach ($this->externalServices as $externalService) { if (!method_exists($externalService, 'check')) { continue; } $queueData = [ 'type' => 'checkExternal', 'service' => get_class($externalService), 'action' => 'check', ]; if ($update) { $queueData['args'] = ['update' => true]; } if (!$this->queueService->enqueue($queueData)) { $errors []= get_class($externalService); } } if (count($errors) > 0) { $this->logger->error('Could not enqueue check of external services', ['services' => $errors]); return false; } return true; } }