Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 有没有办法依靠Postgres通知/倾听机制?_Postgresql - Fatal编程技术网

Postgresql 有没有办法依靠Postgres通知/倾听机制?

Postgresql 有没有办法依靠Postgres通知/倾听机制?,postgresql,Postgresql,我已经实现了Notify/Listen机制,因此当一个特殊的请求被发送到web服务器时,使用Notify我可以通知工作人员(在Python中)有一个挂起的请求等待处理。 实现工作正常,但问题是如果workers服务器正在重新启动,通知将丢失,因为在特定时间没有侦听器。 我可以实现像MQRabbit或类似的服务,但我的需求太简单,实现这样的怪物太多了。 是否有任何方法(可能是配置变量)可以为通知机制提供某种持久性 提前感谢我不认为有办法保持通知通道,但您可以简单地将挂起的请求存储到一个表中,并让工

我已经实现了Notify/Listen机制,因此当一个特殊的请求被发送到web服务器时,使用Notify我可以通知工作人员(在Python中)有一个挂起的请求等待处理。 实现工作正常,但问题是如果workers服务器正在重新启动,通知将丢失,因为在特定时间没有侦听器。 我可以实现像MQRabbit或类似的服务,但我的需求太简单,实现这样的怪物太多了。 是否有任何方法(可能是配置变量)可以为通知机制提供某种持久性


提前感谢

我不认为有办法保持通知通道,但您可以简单地将挂起的请求存储到一个表中,并让工作人员在启动时检查任何遗漏的工作

时间戳或挂起/完成标志都可以工作,具体取决于它所做的工作类型


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

这是一种可能,但不是特别优雅的。要进行这样的攻击,我更愿意实现一个适当且简单的队列管理系统,以提供一个您可以信赖的解决方案。谢谢@AkerbeltZ队列管理系统负责侦听事件并将其排队。队列管理系统可能会死机或重新启动,对吗?尽管如此,通知还是会丢失。