pg_notification_queue_usage()

报告异步通知队列满载程度的函数

pg_notification_queue_usage() 是一个系统函数,返回异步通知队列最大大小的当前占用比例,该比例由未处理的通知占用。

pg_notification_queue_usage()PostgreSQL 9.6 中添加。

用法

pg_notification_queue_usage () → double precision

返回的数字是一个介于 01 之间的值,表示异步通知队列的最大大小(默认:8GB)被通知(由 NOTIFY 命令或 pg_notify() 函数发送)占用,这些通知尚未被监听会话使用。

更改历史记录

示例

pg_notification_queue_usage() 的基本执行示例,指示没有排队的消息

postgres=# SELECT pg_notification_queue_usage();
 pg_notification_queue_usage 
-----------------------------
                           0
(1 row)

将大量消息插入队列;请注意,这至少需要另一个会话在通道 foo 上侦听

postgres=# CREATE TABLE notifications(channel NAME NOT NULL, message TEXT);
CREATE TABLE

postgres=# INSERT INTO notifications
             SELECT 'foo', y || REPEAT('x', 7990)
               FROM generate_series(1,10000) AS x(y);
INSERT 0 10000

postgres=# SELECT COUNT(pg_notify(channel, message)) FROM notifications;
 count
-------
 10000
(1 row)

postgres=# SELECT pg_notification_queue_usage();
 pg_notification_queue_usage
-----------------------------
         0.01049041748046875
(1 row)

分类

异步通知系统函数

另请参阅

pg_notify()NOTIFYLISTENUNLISTEN

反馈

提交任何关于 "pg_notification_queue_usage()" 的评论、建议或更正 在此