// +---------------------------------------------------------------------- namespace crmeb\listens; use crmeb\interfaces\ListenerInterface; use crmeb\services\TimerService; use Swoole\Process; use Swoole\Server; use Symfony\Component\Process\PhpExecutableFinder; class QueueListen extends TimerService implements ListenerInterface { public function handle($event): void { $process = new Process(function (Process $process) { $process->exec((new PhpExecutableFinder)->find(false), [ dirname(__DIR__, 2) . '/think', 'queue:listen', '--tries=2', '--queue=' . env('queue_name', 'default') ]); }, false, 0, true); app()->make(Server::class)->addProcess($process); } }