如何查找postgres NOTIFY / LISTEN消息队列的当前长度?

时间:2018-02-07 22:03:58

标签: postgresql message-queue

问题标题说明了一切。我们在数据库表上设置TRIGGERS,由异地工作人员使用。但是,有时候工作人员似乎在更新记录方面落后了。是否有SQL查询或调用来确定消息队列的现有长度? (不弹出任何项目)。我在postgres文档和other stackoverflow questions中看到了很多关于此队列的提及,但是找不到有关实际确定长度的任何内容。任何帮助表示赞赏!

对于那些熟悉redis的人,我正在为这个postgres消息队列寻找等效的LLEN命令。

1 个答案:

答案 0 :(得分:2)

我不认为有任何直接报告队列条目数的内容。

最接近的可能是pg_notification_queue_usage(),它告诉您当前使用的队列存储的比例是多少(根据NOTIFY docs,在标准安装中总共8GB)。

当然,内存使用量很大程度上取决于有效负载,但如果你能算出平均通知大小,你应该可以将其转换为大致的队列长度。