Notification Driver¶
通过消息传递发送通知的 Notification 驱动程序。
消息驱动程序将通知消息发布到通知监听器。
对于 rabbit 后端,驱动程序将阻塞 notifier 的线程,直到通知消息已传递到消息传输。无法保证通知消息会被通知监听器消费。
对于 kafka 后端,驱动程序不会阻塞 notifier 的线程,而是立即返回。驱动程序将在后台尝试传递消息。
通知消息以“最多一次”的方式发送 - 确保它们不会被重复。
如果向消息服务发送通知时连接不活动,rabbit 后端将阻塞等待连接完成。如果连接失败,驱动程序将尝试重新建立该连接。默认情况下,这将无限期地持续,直到连接完成。但是,可以使用 retry 参数使通知发送失败。在这种情况下,会记录错误,并且 notifier 的线程在没有错误的情况下恢复。
如果向消息服务发送通知时连接不活动,kafka 后端将立即返回,并且后端尝试建立连接并在后台传递消息。
- class oslo_messaging.notify.messaging.MessagingDriver(conf, topics, transport, version=1.0)¶
使用 1.0 消息格式发送通知。
此驱动程序通过配置的消息传递传输发送通知,但不包含任何消息信封(也称为消息格式 1.0)。
仅当存在不支持 2.0 消息格式的已部署消费者时,才应使用此驱动程序。
- class oslo_messaging.notify.messaging.MessagingV2Driver(conf, **kwargs)¶
使用 2.0 消息格式发送通知。
- class oslo_messaging.notify.notifier.Driver(conf, topics, transport)
通知的基础驱动程序
- abstract notify(ctxt, msg, priority, retry)
发送具有特定优先级的单个通知
- 参数:
ctxt – 当前请求上下文
msg (str) – 要发送的消息
priority (str) – 消息的优先级
retry (int) – 连接重试配置(由消息驱动程序使用):None 或 -1 表示无限期重试。0 表示不尝试重试。N 表示最多尝试 N 次重试。