diff --git a/src/Worker/SupervisorWorker.php b/src/Worker/SupervisorWorker.php index 3ad06f9..5ad6053 100644 --- a/src/Worker/SupervisorWorker.php +++ b/src/Worker/SupervisorWorker.php @@ -8,7 +8,7 @@ use CrazyGoat\WorkermanBundle\Supervisor\ProcessHandler; use Workerman\Worker; -final readonly class SupervisorWorker +readonly class SupervisorWorker { private const PROCESS_TITLE = '[Process]'; @@ -27,11 +27,14 @@ public function __construct(KernelFactory $kernelFactory, ?string $user, ?string } $taskName = empty($serviceConfig['name']) ? $serviceId : $serviceConfig['name']; + assert(is_string($taskName)); + $processes = $serviceConfig['processes'] ?? 1; + assert(is_int($processes)); $worker = new Worker(); $worker->name = self::PROCESS_TITLE; $worker->user = $user ?? ''; $worker->group = $group ?? ''; - $worker->count = $serviceConfig['processes'] ?? 1; + $worker->count = $processes; $worker->onWorkerStart = function (Worker $worker) use ($kernelFactory, $serviceId, $serviceConfig, $taskName): never { $worker->log(sprintf('%s "%s" started', $worker->name, $taskName)); $kernel = $kernelFactory->createKernel(); @@ -39,9 +42,10 @@ public function __construct(KernelFactory $kernelFactory, ?string $user, ?string /** @var ProcessHandler $handler */ $handler = $kernel->getContainer()->get('workerman.process_handler'); $method = empty($serviceConfig['method']) ? '__invoke' : $serviceConfig['method']; + assert(is_string($method)); $handler("$serviceId::$method", $taskName); - sleep(1); - exit; + $worker->log("Process \"$taskName\" (service: $serviceId::$method) finished unexpectedly"); + exit(1); }; } }