Skip to main content

Crate nanotify_core

Crate nanotify_core 

Source
Expand description

有界、渠道中立的离散事件通知合同。

队列生产端只向固定容量队列尝试入队,不调用第三方代码;宿主负责 worker 生命周期、 超时、并发和停止。文本在构造通知时清理控制字符并限制长度,不接收数据库对象或任意 JSON。 业务主动实现 Notify 并自行选择通知微服务的通信方式;本组件不提供渠道客户端、协议或机器人凭据配置。 业务用 init 主动安装进程实现;notify 在未初始化时忽略消息,有实现时直接调用。 直接调用不隐式获得队列、超时或异常隔离。受管 SQL 通知由宿主 worker 调用业务实现, NotifyReceipt::accepted 为真才表示适配器接受,不代表最终收件;有界队列不提供持久送达或跨副本去重。

Structs§

AlertRoute
启动期解析的具体队列路由;热路径不解析 provider 名称,不执行用户回调。
AlreadyInitialized
进程通知实现已经由业务初始化,不允许覆盖正在使用的实现。
ConfigError
只携带静态配置路径的安全错误。
DispatcherConfig
进程级通知调度预算;未启用通知时仅保留配置,不创建运行资源。
Envelope
消费端唯一拥有的待投递消息。
Notification
拥有型且长度受限的通知;不实现输出消息内容的诊断格式化。
NotificationFields
通知输入;构造后所有文本均由 Notification::new 施加统一边界。
NotificationIdentity
启动期冻结的通知来源身份;与指标出口使用同一进程标识。
NotificationProducer
已冻结 provider 目录的队列生产能力。
NotificationQueue
只负责有界内存队列的工厂,不创建任务、线程或网络客户端。
NotificationReceiver
单消费者接收权,宿主可在不销毁旧 route 的情况下关闭并排空。
NotifyError
脱敏错误,只描述稳定分类及重试证据。
NotifyReceipt
渠道受理回执,不携带原始响应正文;未受理不等同于 trait 返回错误。
QueueMetrics
通知源的固定原子单元;仅抓取时构造 label 和样本。

Enums§

DeliveryOutcome
一次 envelope 投递的最终结果,不以尝试次数重复计数。
EnqueueOutcome
非阻塞入队结果;不包含可以反向传播到业务调用的错误。
EventKind
固定离散事件集合,也是通知指标的低基数维度。
NotifyErrorKind
稳定失败分类;原始响应与 URL 不进入错误链。
RetrySafety
明确的重试证据;结果未知不得自行重发。
Severity
渠道中立的消息严重程度。

Constants§

DEFAULT_PROVIDER_ID
未显式指定命名渠道时使用的进程通知路由,不要求 YAML 声明 provider。

Traits§

Notify
受管 SQL 通知只在宿主管理的异步 worker 内调用,不得在 SQL 生产路径调用。 业务也可直接调用进程通知接口,此时由业务负责超时、异常隔离与执行边界。 业务实现负责调用通知微服务;协议、鉴权和下游消息发送由业务拥有,框架不连接具体消息渠道。 Future 必须协作让出执行权且取消安全;同步阻塞或自行派生的后台任务不受宿主时间预算保护。

Functions§

bounded_text
业务作用:按 Unicode 边界限制长度并消除控制与方向覆盖字符,防止消息结构注入。
get
业务作用:供调用方判断业务是否已经提供通知能力,不触发惰性初始化或外部 I/O。
init
业务作用:由业务主动安装进程唯一通知实现,框架不创建客户端或解析通信协议。
notify
业务作用:有业务实现时直接异步调用,没有实现时忽略通知。
valid_provider_id
业务作用:限制 provider 目录和指标标签的字符集与长度。