Client

一个 Client 是 Zaqar 功能之上的高级抽象。它以面向对象的接口暴露服务器功能,鼓励点符号和自动的、但延迟的资源分配。一个 Client 允许你控制一切,从公共接口到管理端点。

要创建一个 Client 实例,你需要提供一个指向服务器的 URL 和一个版本号

from zaqarclient.queues import client

cli = client.Client('http://zaqar.example.com:8888/', version=2)

这将加载基于指定版本对应的客户端。可选地,你还可以提供一个配置字典

from zaqarclient.queues import client

cli = client.Client('http://zaqar.example.com:8888/',
                    version=2, conf={})

传递给此函数的所有参数也将传递给客户端实例。

建议使用 Client 实例而不是访问较低级别的 API,因为它被设计用来简化与服务器的交互,并且为最常见的情况提供了足够的控制。

一个通过客户端实例访问现有队列的简单示例 - 基于 API v2 - 如下所示

from zaqarclient.queues import client

cli = client.Client('http://zaqar.example.com:8888/', version=2)
queue = cli.queue('my_queue')

通过队列实例,将能够访问与队列本身相关的所有功能,例如发布消息、获取消息和删除消息。

如本文档前面所述,客户端实例还允许你访问管理端点,例如

from zaqarclient.queues import client

cli = client.Client('http://zaqar.example.com:8888/', version=2)
flavor = cli.flavor('tasty',
                    pool='my-pool-group',
                    auto_create=True)
flavor.delete()

Client 使用较低级别的 API 来访问服务器,这意味着你可以通过访问底层 API 来完成可以使用此客户端实例执行的任何操作,尽管不建议这样做。

Client 对象参考

这是所有 API 版本的参考文档。

API v2.0

class Client(url=None, version=2, conf=None, session=None)

Client 基类

参数:
  • url (str) – Zaqar 实例的基本 URL。

  • version (int) – 指向的 API 版本。

  • conf (oslo_config.cfg.CONF) – CONF 对象。

flavor(ref, **kwargs)

返回一个 flavor 实例

参数:

ref (str) – Flavor 的引用名称。

返回值:

一个 flavor 实例

返回类型:

flavor.Flavor

flavors(**params)

从服务器获取 flavor 列表

参数:

params (dict.) – 获取 flavor 的过滤器

返回值:

一个 flavor 列表

返回类型:

列表

follow(ref)

跟踪 ref。

此方法实例化一个新的请求实例并请求 ref。它旨在用于跟踪从 links 部分获得的引用 href,例如队列列表中的响应。

参数 ref:

引用路径。

health()

获取 Zaqar 服务器的详细健康状态。

homedoc()

获取 Zaqar 服务器的详细资源文档

ping()

获取 Zaqar 服务器的健康状态。

pool(ref, **kwargs)

返回一个 pool 实例

参数:

ref (str) – Pool 的引用名称。

返回值:

一个 pool 实例

返回类型:

pool.Pool

pools(**params)

从服务器获取 pool 列表

参数:

params (dict.) – 获取 pool 的过滤器

返回值:

一个 pool 列表

返回类型:

列表

queue(ref, **kwargs)

返回一个 queue 实例

参数:

ref (str) – Queue 的引用 ID。

返回值:

一个 queue 实例

返回类型:

queues.Queue

queues(**params)

从服务器获取 queue 列表

返回值:

一个 queue 列表

返回类型:

列表

subscription(queue_name, **kwargs)

返回一个 subscription 实例

参数:

queue_name (str) – 要订阅的队列的名称。

返回值:

一个 subscription 实例

返回类型:

subscription.Subscription

subscriptions(queue_name, **params)

从服务器获取 subscription 列表

参数:

params (dict.) – 获取 subscription 的过滤器

返回值:

一个 subscription 列表

返回类型:

列表

transport()

基于 api url 和版本获取一个 transport。

返回类型:

zaqarclient.transport.base.Transport