postgresql - 有没有办法依赖 Postgres 通知/监听机制?

标签 postgresql

我已经实现了一个通知/监听机制,所以当一个特殊的请求被发送到网络服务器时,我可以使用通知通知工作人员(在 Python 中)有一个待处理的请求正在等待处理。 实现工作正常,但问题是如果工作服务器正在重新启动,通知会丢失,因为在那个特定时间没有监听器。 我可以实现像 MQRabbit 或类似的服务,但我的需求太简单了,实现这样一个怪物太多了。 有没有什么办法,也许是一个配置变量,可以为通知机制提供一些持久性?

提前致谢

最佳答案

我不认为有一种方法可以持久化通知 channel ,但您可以简单地将待处理的请求存储到一个表中,并让工作人员在启动时检查是否有任何遗漏的工作。

时间戳或挂起/完成标志都可以,具体取决于它正在执行的工作类型。

为了保持一致性,您可以从队列表中的 INSERT 触发器触发 NOTIFY,并让 worker 始终检查任何剩余工作(不仅仅是特定的请求)在收到通知时。

关于postgresql - 有没有办法依赖 Postgres 通知/监听机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602980/

相关文章:

PostgreSQL 提高 PL/pgSQL 函数的性能

postgresql - golang -- 使用用户名和密码连接到 postgresql 时无法创建用户

postgresql - Ubuntu 中 PostgreSQL 数据库的自动备份

json - postgres-simple - 没有因使用 ‘query’ 而产生的 (ToRow Int) 实例

java - Hibernate @Formula 导致 org.hibernate.HibernateException : Missing column

SQL:将列的数据类型从字符串更改为数字

javascript - 通过一次 API 调用在多个表中创建多条记录的最有效方法是什么(sequelize/postgres/node.js)

sql - PostgreSQL 9.5 在多次出现的键上插入数据

SQL 获取列值等于最大值的行

sql - GROUP BY 和 COUNT 使用 ActiveRecord