Message API v2

有关如何使用 message 的详细信息,请参阅 使用 OpenStack Message

Message v2 类

message 高级接口可通过 Connection 对象的 message 成员进行访问。仅当检测到该服务时,才会添加 message 成员。

Message 操作

class openstack.message.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
post_message(queue_name, messages)

将消息发布到指定的队列

参数:
  • queue_name – 要发布消息的目标队列的名称。

  • messages – 要发布的消息体和 TTL 列表。 :type messages: list

返回值:

一个包含成功发布消息位置的字符串。

messages(queue_name, **query)

检索消息生成器

参数:
  • queue_name – 要从中查询消息的目标队列的名称。

  • query (kwargs) –

    可选的查询参数,用于限制要返回的消息。可用参数包括:

    • limit: 请求最多将指定数量的项

      从查询中返回。

    • marker: 指定最后看到的订阅的 ID。使用

      limit 参数进行初始的有限请求,并使用响应中最后看到的订阅的 ID 作为 marker 参数值,在后续的有限请求中使用。

    • echo: 指示消息是否可以回显给发布它们到客户端。

      that posted them.

    • include_claimed: 指示消息列表是否应包含

      已声明的消息。

返回值:

消息实例的生成器。

get_message(queue_name, message)

获取一条消息

参数:
  • queue_name – 要从中获取消息的目标队列的名称。

  • message – 该值可以是消息的名称或 Message 实例。

返回值:

一个 Message

引发:

当找不到匹配条件的任何消息时,将引发 NotFoundException

delete_message(queue_name, value, claim=None, ignore_missing=True)

删除一条消息

参数:
  • queue_name – 要从中删除消息的目标队列的名称。

  • value – 该值可以是消息的名称或 Message 实例。

  • claim – 该值可以是声明的消息的 ID 或 Claim 实例。如果为 None,则该消息尚未被声明。

  • ignore_missing (bool) – 当设置为 False 时,当消息不存在时将引发 NotFoundException。当设置为 True 时,尝试删除不存在的消息不会引发异常。

返回值:

Queue 操作

class openstack.message.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
create_queue(**attrs)

根据属性创建新队列

参数:

attrs (dict) – 将用于创建 Queue 的关键字参数,包含 Queue 类上的属性。

返回值:

队列创建的结果

返回类型:

队列

get_queue(queue)

获取一个队列

参数:

queue – 该值可以是队列的名称或 Queue 实例。

返回值:

一个 Queue

引发:

当找不到匹配名称的队列时,将引发 NotFoundException

queues(**query)

检索队列生成器

参数:

query (kwargs) –

可选的查询参数,用于限制要返回的队列。可用参数包括:

  • limit: 请求最多将指定数量的项

    从查询中返回。

  • marker: 指定最后看到的队列的 ID。使用 limit

    参数进行初始的有限请求,并使用响应中最后看到的队列的 ID 作为 marker 参数值,在后续的有限请求中使用。

返回值:

队列实例的生成器。

delete_queue(value, ignore_missing=True)

删除一个队列

参数:
  • value – 该值可以是队列的名称或 Queue 实例。

  • ignore_missing (bool) – 当设置为 False 时,当队列不存在时将引发 NotFoundException。当设置为 True 时,尝试删除不存在的队列不会引发异常。

返回值:

Claim 操作

class openstack.message.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
create_claim(queue_name, **attrs)

根据属性创建新声明

参数:
  • queue_name – 要从中声明消息的目标队列的名称。

  • attrs (dict) – 将用于创建 Claim 的关键字参数,包含 Claim 类上的属性。

返回值:

声明创建的结果

返回类型:

Claim

get_claim(queue_name, claim)

获取一个声明

参数:
  • queue_name – 要从中声明消息的目标队列的名称。

  • claim – 该值可以是声明的 ID 或 Claim 实例。

返回值:

一个 Claim

引发:

当找不到匹配条件的任何声明时,将引发 NotFoundException

update_claim(queue_name, claim, **attrs)

根据属性更新现有声明

参数:
  • queue_name – 要从中声明消息的目标队列的名称。

  • claim – 该值可以是声明的 ID 或 Claim 实例。

  • attrs (dict) – 将用于更新 Claim 的关键字参数,包含 Claim 类上的属性。

返回值:

声明更新的结果

返回类型:

Claim

delete_claim(queue_name, claim, ignore_missing=True)

删除一个声明

参数:
  • queue_name – 要从中声明消息的目标队列的名称。

  • claim – 该值可以是声明的 ID 或 Claim 实例。

  • ignore_missing (bool) – 当设置为 False 时,当声明不存在时将引发 NotFoundException。当设置为 True 时,尝试删除不存在的声明不会抛出异常。

返回值:

Subscription 操作

class openstack.message.v2._proxy.Proxy(session, *, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None, allow=None, additional_headers=None, client_name=None, client_version=None, allow_version_hack=None, global_request_id=None, min_version=None, max_version=None, default_microversion=None, status_code_retries=None, retriable_status_codes=None, raise_exc=None, rate_limit=None, concurrency=None, connect_retry_delay=None, status_code_retry_delay=None, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None)
create_subscription(queue_name, **attrs)

根据属性创建新订阅

参数:
  • queue_name – 要订阅的目标队列的名称。

  • attrs (dict) – 将用于创建 Subscription 的关键字参数,包含 Subscription 类上的属性。

返回值:

订阅创建的结果

返回类型:

Subscription

subscriptions(queue_name, **query)

检索订阅生成器

参数:
  • queue_name – 要订阅的目标队列的名称。

  • query (kwargs) –

    可选的查询参数,用于限制要返回的订阅。可用参数包括:

    • limit: 请求最多将指定数量的项

      从查询中返回。

    • marker: 指定最后看到的订阅的 ID。使用

      limit 参数进行初始的有限请求,并使用响应中最后看到的订阅的 ID 作为 marker 参数值,在后续的有限请求中使用。

返回值:

订阅实例的生成器。

get_subscription(queue_name, subscription)

获取一个订阅

参数:
  • queue_name – 订阅的目标队列的名称。

  • message – 该值可以是订阅的 ID 或 Subscription 实例。

返回值:

一个 Subscription

引发:

当找不到匹配条件的任何订阅时,将引发 NotFoundException

delete_subscription(queue_name, value, ignore_missing=True)

删除订阅

参数:
  • queue_name – 要从中删除订阅的目标队列的名称。

  • value – 该值可以是订阅的名称或 Subscription 实例。

  • ignore_missing (bool) – 当设置为 False 时,当订阅不存在时将引发 NotFoundException。当设置为 True 时,尝试删除不存在的订阅不会抛出异常。

返回值: