confirmToProceed()) { return 1; } $connection = $this->argument('connection') ?: $this->laravel['config']['queue.default']; // We need to get the right queue for the connection which is set in the queue // configuration file for the application. We will pull it based on the set // connection being run for the queue operation currently being executed. $queueName = $this->getQueue($connection); $queue = $this->laravel['queue']->connection($connection); if ($queue instanceof ClearableQueue) { $count = $queue->clear($queueName); $this->components->info('Cleared '.$count.' jobs from the ['.$queueName.'] queue'); } else { $this->components->error('Clearing queues is not supported on ['.(new ReflectionClass($queue))->getShortName().']'); } return 0; } /** * Get the queue name to clear. * * @param string $connection * @return string */ protected function getQueue($connection) { return $this->option('queue') ?: $this->laravel['config']->get( "queue.connections.{$connection}.queue", 'default' ); } /** * Get the console command arguments. * * @return array */ protected function getArguments() { return [ ['connection', InputArgument::OPTIONAL, 'The name of the queue connection to clear'], ]; } /** * Get the console command options. * * @return array */ protected function getOptions() { return [ ['queue', null, InputOption::VALUE_OPTIONAL, 'The name of the queue to clear'], ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'], ]; } }