#!/usr/bin/php 0) { #\Kint::dump($implements, $declaredClass); foreach ($acceptedInterfaces as $acceptedInterface) { $testClass = new \ReflectionClass($declaredClass); if ($testClass->isAbstract()) { continue; } if (isset($implements[$acceptedInterface])) { $workerClass = "\\{$declaredClass}"; continue; } } } } } if(!$workerClass || !class_exists($workerClass)){ die("No such worker \"{$workerClass}\".\n"); } echo "Starting {$workerClass} with {$threads} threads.\n"; if($threads == 1){ /** @var AbstractQueueWorker $worker */ $worker = App::DI($workerClass); $worker->setCliArguments($args); $worker->run(); }else { $fork = new Fork; for ($i = 0; $i < $threads; $i++) { $fork->call(function () use ($workerClass, $args) { /** @var AbstractQueueWorker $worker */ $worker = App::DI($workerClass); $worker->setCliArguments($args); $worker->run(); }); } $fork->wait(); }