/** * Execute the console command. * * @return void */ public function fire() { $this->pluginEnabled(); $queue = $this->option('queue'); $connection = $this->argument('connection'); $flag = $this->cache->get($this->flagHelper->getFlagName($connection, $queue), 0); if ($this->flagIsDown($flag)) { $killedWorkers = $this->kuduHelper->killQueueWorkers($connection, $queue); if ($killedWorkers === 0) { throw new QueueProcessesNotKilledException('The "' . $this->flagHelper->getQueueName($queue) . '" queue on connection "' . $this->flagHelper->getConnectionName($connection) . '" is unresponsive, but the process could not be terminated.'); } $infoString = 'The "' . $this->flagHelper->getQueueName($queue) . '" queue on connection "' . $this->flagHelper->getConnectionName($connection) . '" was unresponsive. ' . $killedWorkers . ' process'; if ($killedWorkers > 1) { $infoString .= 'es were'; } else { $infoString .= ' was'; } $infoString .= ' terminated.'; throw new UnresponsiveQueueWorkerException($infoString); } }