↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.2 / 7.1
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

3.6. 异步通知 #

PostgreSQL 通过 LISTEN 和 NOTIFY 命令支持异步通知。后端用 LISTEN 命令注册它对某个通知条件的关注。当另一个后端执行同名的 NOTIFY 时,所有正在监听该条件的后端都会被异步通知。通知者不会向监听者传递任何额外的信息。因此,通常任何需要通信的实际数据都是通过一个关系传递的。

每当一个已连接的后端收到异步通知时,libpq++ 应用都会得到通知。但是,从后端到前端的通信并不是异步的。 libpq++ 应用必须轮询后端,查看是否有待处理的通知信息。在执行一条命令之后,前端可以调用 PgDatabase::Notifies 查看后端当前是否有可用的通知数据。 PgDatabase::Notifies 从后端的未处理通知列表中返回通知。如果没有来自后端的待处理通知,该函数返回 NULL。 PgDatabase::Notifies 的行为像弹出一个栈。一旦某条通知被 PgDatabase::Notifies 返回,它就被视为已处理,并将从通知列表中移除。

  • PgDatabase::Notifies 从服务器取回待处理的通知。

    PGnotify* PgDatabase::Notifies()
    

第二个示例程序演示了异步通知的用法。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。