Updated on 2024-08-08 GMT+08:00

Querying Specified Queue Details

Function

This API is used to query details of a specified queue.

Calling Method

For details, see Calling APIs.

URI

GET /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues/{queue}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details, see Obtaining a Project ID.

instance_id

Yes

String

Instance ID.

vhost

Yes

String

Virtual host name.

queue

Yes

String

Queue name.

Request Parameters

None

Response Parameters

Status code: 200

Table 2 Response body parameters

Parameter

Type

Description

vhost

String

Virtual host name.

name

String

Queue name.

durable

Boolean

Indicates whether data persistence is enabled.

auto_delete

Boolean

Indicates whether automatic deletion is enabled.

messages

Integer

Accumulated messages.

consumers

Integer

Connected consumers.

policy

String

Policy (RabbitMQ AMQP does not support this parameter.

arguments

QueueArguments object

Queue parameter. This parameter is not returned if it is not configured.

consumer_details

Array of ConsumerDetails objects

Details of subscribed consumers.

queue_bindings

Array of BindingsDetails objects

Bindings to this queue.

Table 3 QueueArguments

Parameter

Type

Description

x-message-ttl

Long

Message retention period. This parameter indicates for how long a message in this queue can be retained.

x-dead-letter-exchange

String

Name of the dead letter exchange. Rejected and expired messages are re-sent to this exchange.

x-dead-letter-routing-key

String

Routing key of the dead letter exchange. The dead letter exchange sends dead letter messages to the queue with a matching routing key.

x-queue-mode

String

Lazy queue (RabbitMQ AMQP does not have this parameter because all messages are persisted by default).

Table 4 ConsumerDetails

Parameter

Type

Description

consumer_tag

String

Consumer tag.

channel_details

ChannelDetails object

Consumer connections.

ack_required

Boolean

Indicates whether manual acknowledgement is enabled on the consumer client.

prefetch_count

Integer

Consumer client preset value.

Table 5 ChannelDetails

Parameter

Type

Description

name

String

Channel details, including the client IP:Port and the server IP:Port (channel_id).

number

Integer

Channel quantity.

user

String

Consumer username. If ACL is enabled, the real username will be returned; otherwise null will be returned.

connection_name

String

Connection details, including the client IP:Port and the server IP:Port.

peer_host

String

IP address of the connected consumer.

peer_port

Integer

Port of the process of the connected consumer.

Table 6 BindingsDetails

Parameter

Type

Description

source

String

Exchange name.

destination_type

String

Binding target type.

destination

String

Binding target name.

routing_key

String

Binding key-value.

properties_key

String

URL-translated routing key.

Example Requests

Querying specified queue details

GET https://{endpoint}/v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/queues?offset=0&limit=10

Example Responses

None

SDK Sample Code

The SDK sample code is as follows.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.rabbitmq.v2.region.RabbitMQRegion;
import com.huaweicloud.sdk.rabbitmq.v2.*;
import com.huaweicloud.sdk.rabbitmq.v2.model.*;


public class ShowQueueDetailsSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        RabbitMQClient client = RabbitMQClient.newBuilder()
                .withCredential(auth)
                .withRegion(RabbitMQRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowQueueDetailsRequest request = new ShowQueueDetailsRequest();
        request.withInstanceId("{instance_id}");
        request.withVhost("{vhost}");
        request.withQueue("{queue}");
        try {
            ShowQueueDetailsResponse response = client.showQueueDetails(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkrabbitmq.v2.region.rabbitmq_region import RabbitMQRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkrabbitmq.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = RabbitMQClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(RabbitMQRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowQueueDetailsRequest()
        request.instance_id = "{instance_id}"
        request.vhost = "{vhost}"
        request.queue = "{queue}"
        response = client.show_queue_details(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    rabbitmq "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := rabbitmq.NewRabbitMQClient(
        rabbitmq.RabbitMQClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowQueueDetailsRequest{}
	request.InstanceId = "{instance_id}"
	request.Vhost = "{vhost}"
	request.Queue = "{queue}"
	response, err := client.ShowQueueDetails(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Successful

Error Codes

See Error Codes.