我编写了一个Java应用程序,当数据库中出现'某事'时,应该启动或唤醒它。例如,插入用户表应该触发发送通常的欢迎,密码,...邮件。
这样做的最佳常见做法是什么?我可以编写我的应用程序,以便它执行以下查询,让我们说每一秒:
select mail from user where mail_sent = false
但这是民意调查,我想避免它。有没有办法启动或唤醒由数据库中的更改启动的Java应用程序(推送)?
干杯!
答案 0 :(得分:3)
PostgreSQL中的触发器可以用多种语言编写,其中包括PL / Java。您可以在需要对相关操作(插入,删除,更新...)进行监视的表上设置触发器,并让触发器处理通知。它可能需要某种形式的进程间通信,但如果触发器和客户端都是用Java编写的,那应该不会太难。
答案 1 :(得分:2)
查看NOTIFY
答案 2 :(得分:1)
试试这个..它很容易理解并且会帮助你很多
答案 3 :(得分:0)
我认为不可能启动应用程序。但是,当您运行应用程序时,该应用程序可以订阅侦听事件。您可以使用触发器为特定操作发布(通知)事件。
当应用程序收到事件通知时,它可以响应某些操作。请参阅postgresql site for an example。