如何解决在postgres db中,当将来的列数据带有时间戳满足当前时间时,我们如何获取通知或触发器
从UI用户将给我们一些特定的时间(带有时区)以更新设备上的exe版本。 我们将其存储在postgresql db中,作为demandedInstallationTime。
-------------------------------------------------------------
| Id | DeviceName | demanded Installation Time | Other data |
-------------------------------------------------------------
我不是从Java中每分钟轮询一次,以检查表中是否有任何带有'demandedInstallationTime'的条目,然后调用安装,而是从Postgresql工具开始考虑。 像pg_notify()一样,但是在有表行的插入/更新/删除操作时有效。
还需要安排Cron作业按分钟或每小时等连续24/7运行,这在我们的情况下不可行。
我希望当'demandedInstallationTime'列等于'当前时间'时,一些线程自动通知/触发某些脚本。我们怎样才能做到这一点?有什么建议吗?
解决方法
您可以使用以PL/Perl或PL/Python(也可以使用其他语言)编写的触发器,该触发器执行某种外部脚本。当然,您需要仔细考虑执行此操作可能对性能/安全性造成的影响。
或者,您可以编写一个作为守护程序运行并检查更新的脚本(例如,在您感兴趣的表上由触发器编写的队列表中)或侦听通知。如果您真的很喜欢冒险,可以写一个custom background worker,但这对于期望的目的可能会不必要地复杂。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。