setConfigDynamically($settings); $driver = Arr::get($settings, 'queue_driver', config('queue.default')); try { Queue::connection($driver)->size(); } catch (Exception $e) { return $this->getErrorMessage($e, $driver); } } private function setConfigDynamically($settings) { foreach ($settings as $key => $value) { // SQS_QUEUE_KEY => sqs.queue.key $key = strtolower(str_replace('_', '.', $key)); // sqs.queue.key => sqs.key $key = str_replace('queue.', '', $key); $key = str_replace('name', 'queue', $key); Config::set("queue.connections.$key", $value); } } /** * @param Exception $e * @param string $driver * @return array */ private function getErrorMessage($e, $driver) { return ['queue_group' => "Could not change queue driver to $driver.
{$e->getMessage()}"]; } }