我已经实现了一个通知/监听机制,所以当一个特殊的请求被发送到网络服务器时,我可以使用通知通知工作人员(在 Python 中)有一个待处理的请求正在等待处理。 实现工作正常,但问题是如果工作服务器正在重新启动,通知会丢失,因为在那个特定时间没有监听器。 我可以实现像 MQRabbit 或类似的服务,但我的需求太简单了,实现这样一个怪物太多了。 有没有什么办法,也许是一个配置变量,可以为通知机制提供一些持久性?
提前致谢
最佳答案
我不认为有一种方法可以持久化通知 channel ,但您可以简单地将待处理的请求存储到一个表中,并让工作人员在启动时检查是否有任何遗漏的工作。
时间戳或挂起/完成标志都可以,具体取决于它正在执行的工作类型。
为了保持一致性,您可以从队列表中的 INSERT
触发器触发 NOTIFY
,并让 worker 始终检查任何剩余工作(不仅仅是特定的请求)在收到通知时。
关于postgresql - 有没有办法依赖 Postgres 通知/监听机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602980/