↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.2 / 7.1
历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.

3.6. 异步通知 #

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

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

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

    PGnotify* PgDatabase::Notifies()

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

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.