public function getQueueSettings(string $queueName): array
    {
        if (isset($this->queueSettingsRuntimeCache[$queueName])) {
            return $this->queueSettingsRuntimeCache[$queueName];
        }
        if (!isset($this->settings['queues'][$queueName])) {
            throw new JobQueueException(sprintf('Queue "%s" is not configured', $queueName), 1334054137);
        }
        $queueSettings = $this->settings['queues'][$queueName];
        if (isset($queueSettings['preset'])) {
            $presetName = $queueSettings['preset'];
            if (!isset($this->settings['presets'][$presetName])) {
                throw new JobQueueException(sprintf('Preset "%s", referred to in settings for queue "%s" is not configured', $presetName, $queueName), 1466677893);
            }
            $queueSettings = Arrays::arrayMergeRecursiveOverrule($this->settings['presets'][$presetName], $queueSettings);
        }
        $this->queueSettingsRuntimeCache[$queueName] = $queueSettings;
        return $this->queueSettingsRuntimeCache[$queueName];
    }