postgresql - java - 当数据库中发生某些事情时唤醒应用程序

时间:2011-11-10 10:52:15

标签: java postgresql triggers push-notification

我编写了一个Java应用程序,当数据库中出现'某事'时,应该启动或唤醒它。例如,插入用户表应该触发发送通常的欢迎,密码,...邮件。

这样做的最佳常见做法是什么?我可以编写我的应用程序,以便它执行以下查询,让我们说每一秒:

select mail from user where mail_sent = false

但这是民意调查,我想避免它。有没有办法启动或唤醒由数据库中的更改启动的Java应用程序(推送)?

干杯!

4 个答案:

答案 0 :(得分:3)

PostgreSQL中的触发器可以用多种语言编写,其中包括PL / Java。您可以在需要对相关操作(插入,删除,更新...)进行监视的表上设置触发器,并让触发器处理通知。它可能需要某种形式的进程间通信,但如果触发器和客户端都是用Java编写的,那应该不会太难。

答案 1 :(得分:2)

查看NOTIFY

答案 2 :(得分:1)

试试这个..它很容易理解并且会帮助你很多

https://wiki.postgresql.org/wiki/PgNotificationPoller

答案 3 :(得分:0)

我认为不可能启动应用程序。但是,当您运行应用程序时,该应用程序可以订阅侦听事件。您可以使用触发器为特定操作发布(通知)事件。

当应用程序收到事件通知时,它可以响应某些操作。请参阅postgresql site for an example