protected function execute(InputInterface $input, OutputInterface $output) { $queues = $input->getArgument('queues'); $logger = $this->logger ?: $this->createDefaultLogger($output); $jobExecutor = $this->jobExecutor ?: $this->createDefaultJobExecutor(); $worker = new Worker($this->metro, $jobExecutor, $logger, ...$queues); $worker->setInterval((int) $input->getOption('interval')); $input->getOption('once') && $worker->setInterval(0); $input->getOption('drain') && $worker->quitAsap(); $this->updateProcTitleIfPossible($worker->identify(), $queues); $worker->work(); }