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

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

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

45.5. 异步通知

Postgres 通过 LISTEN 和 NOTIFY 命令支持异步通知。后端用 LISTEN 命令注册它对某个特定关系的兴趣。当另一个后端执行带该关系名的 NOTIFY 命令时,所有监听该关系的后端都会被异步通知。通知者不会向监听者传递任何附加信息。因此,通常需要通信的任何实际数据都通过该关系传递。 每当所连接的后端收到异步通知时,libpq 应用都会得到通知。但后端到前端的通信并不是异步的。通知随其他查询结果捎带而来。因此,应用必须提交查询(哪怕是空查询)才能收到后端通知。实际上,libpq 应用必须轮询后端,看是否有待处理的通知信息。查询执行之后,前端可以调用 PQNotifies 查看后端是否有可用的通知数据。

  • PQNotifies 从后端发来的尚未处理的通知列表中返回通知。如果后端没有待处理的通知则返回 NULL。PQNotifies 的行为类似弹出栈。一条通知被 PQnotifies 返回后即视为已处理,并会从通知列表中移除。

    PGnotify* PQNotifies(PGconn *conn);
    

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

提交更正

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