# Set Queues Settings

Queues options allows to configure KubeMQ Queues defaults.

{% tabs %}
{% tab title="Kubemqctl" %}

## Flags

| Flag                                  | Type/Options | Default | Description                                                         |
| ------------------------------------- | ------------ | ------- | ------------------------------------------------------------------- |
| --queue-max-receive-messages-request  | int          | 1024    | Set max of sending / receiving batch of queue message               |
| --queue-max-wait-timeout-seconds      | int          | 3600    | Set max wait timeout allowed for message                            |
| --queue-max-expiration-seconds        | int          | 43200   | Set max expiration allowed for message                              |
| --queue-max-delay-seconds             | int          | 43200   | set max delay seconds allowed for message                           |
| --queue-max-requeue                   | int          | 1024    | Set max retires to receive message before discard                   |
| --queue-max-visibility-seconds        | int          | 43200   | Set max time of hold received message before returning to queue     |
| --queue-default-visibility-seconds    | int          | 60      | Set default time of hold received message before returning to queue |
| -- queue-default-wait-timeout-seconds | int          | 1       | Set default time to wait for a message in a queue                   |

## Examples

Set max delay seconds allowed to no more than one hour:

```bash
kubemqctl create cluster --queue-max-delay-seconds 3600
```

Change default of visibility to 3 minutes:

```bash
kubemqctl create cluster --queue-default-visibility-seconds 180
```

{% endtab %}

{% tab title="Helm" %}

## Values

| Value                           | Type/Options | Default | Description                                                         |
| ------------------------------- | ------------ | ------- | ------------------------------------------------------------------- |
| queue.maxReceiveMessagesRequest | int          | 1024    | Set max of sending / receiving batch of queue message               |
| queue.maxWaitTimeoutSeconds     | int          | 3600    | Set max wait timeout allowed for message                            |
| queue.maxExpirationSeconds      | int          | 43200   | Set max expiration allowed for message                              |
| queue.maxDelaySeconds           | int          | 43200   | set max delay seconds allowed for message                           |
| queue.maxReQueues               | int          | 1024    | Set max retires to receive message before discard                   |
| queue.maxVisibilitySeconds      | int          | 43200   | Set max time of hold received message before returning to queue     |
| queue.defaultVisibilitySeconds  | int          | 60      | Set default time of hold received message before returning to queue |
| queue.defaultWaitTimeoutSeconds | int          | 1       | Set default time to wait for a message in a queue                   |

## Examples

Set max delay seconds allowed to no more than one hour:

```bash
helm install kubemq-cluster  --set queue.maxDelaySeconds=3600 kubemq-charts/kubemq
```

Change default of visibility to 3 minutes:

```bash
helm install kubemq-cluster  --set queue.defaultVisibilitySeconds=180 kubemq-charts/kubemq
```

{% endtab %}

{% tab title="kubectl" %}

## Fields

| Field                     | Type/Options | Default | Description                                                         |
| ------------------------- | ------------ | ------- | ------------------------------------------------------------------- |
| maxReceiveMessagesRequest | int          | 1024    | Set max of sending / receiving batch of queue message               |
| maxWaitTimeoutSeconds     | int          | 3600    | Set max wait timeout allowed for message                            |
| maxExpirationSeconds      | int          | 43200   | Set max expiration allowed for message                              |
| maxDelaySeconds           | int          | 43200   | set max delay seconds allowed for message                           |
| maxReQueues               | int          | 1024    | Set max retires to receive message before discard                   |
| maxVisibilitySeconds      | int          | 43200   | Set max time of hold received message before returning to queue     |
| defaultVisibilitySeconds  | int          | 60      | Set default time of hold received message before returning to queue |
| defaultWaitTimeoutSeconds | int          | 1       | Set default time to wait for a message in a queue                   |

## Examples

Set max delay seconds allowed to no more than one hour:

Run:

```bash
kubectl apply -f {below-yaml-file}
```

```yaml
apiVersion: core.k8s.kubemq.io/v1alpha1
kind: KubemqCluster
metadata:
  name: kubemq-cluster
  namesapce: kubemq
  labels:
    app: kubemq-cluster
spec:
  replicas: 3
  queue:
    maxDelaySeconds: 3600
```

Change default of visibility to 3 minutes:

Run:

```bash
kubectl apply -f {below-yaml-file}
```

```yaml
apiVersion: core.k8s.kubemq.io/v1alpha1
kind: KubemqCluster
metadata:
  name: kubemq-cluster
  namesapce: kubemq
  labels:
    app: kubemq-cluster
spec:
  replicas: 3
  queue:
    defaultVisibilitySeconds: 180
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kubemq.io/configuration/cluster/set-queues-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
