|
3.6. 异步通知PostgreSQL 支持通过 LISTEN 和 NOTIFY 命令产生的异步通知.一个后端用 LISTEN 命令注册一个它感兴趣的通知条件. 所有正在监听某一特定条件的后端在该条件名的 NOTIFY (通知)被另一个后端执行后都将被异步地通知. 没有附加的信息从通知发出者传递到通知接收者.因此,通常 任何实际的需要被传递的数据都是通过一个数据库关系传递的. libpq++ 应用在与之相联的后端收到一个异步通知时将被通知。 不过,从后端到前端的通讯不是异步的。 libpq++ 应用必须轮询后端以便查找是否有待处理的信息。 在一个命令执行完毕后,前端可以调用 PgDatabase::Notifies 来判断目前是否有从后端来的任何通知数据。 PgDatabase::Notifies 从一个来自后端的未处理通知列表里返回一个通知。 如果没有来自后端的待处理的通知,该函数返回 NULL 。 PgDatabase::Notifies 的行为象一个弹出栈。一旦从 PgDatabase::Notifies , 返回了一个通知,该通知就被认为已处理并且被从通知列表里删除。
第二个例子程序给出了一个使用异步通知的例子。 |