监控系统日期并自动发送电子邮件的Java程序

时间:2011-12-08 08:54:55

标签: java

我正在开发一个能够处理大量内容的系统,并监视系统上的当前日期,根据数据库中的存储日期进行检查,如果两个日期完全相同,则发送电子邮件自动给一堆用户。

现在,除了监控部分之外,我已经能够做其他所有事情(发送电子邮件,从数据库中读取数据,并命名)。我使用什么技术,一旦程序运行,并且用户正在使用该程序,该程序的某些部分也会对系统日期和存储在数据库中的日期进行检查?

任何建议都将受到赞赏。

感谢。

5 个答案:

答案 0 :(得分:2)

如果您希望定期运行支票(例如,每天一次),请使用java.util.Timerjava.util.TimerTask,或某种调度程序库,例如Quartz

每次检查都涉及对数据库进行查询,以检查是否需要发送电子邮件。

有关更多信息和示例,请参阅此文章:http://oreilly.com/java/archive/quartz.html

答案 1 :(得分:1)

我建议你不要使用调度程序(Quartz或cron),或者在目标时间启动一个线程,而是建议你定期检查ScheduledExecutorService.scheduleAtFixedRate

针对其他方法的优势:1。它将反映当前最新的数据库更改。 2.它更容易实现。 3.逻辑可以重复使用或单元测试

答案 2 :(得分:0)

从数据库中获取目标日期,计算从现在到目标时间的时间,并启动一个休眠计算时间的线程,并在睡眠时间(目标时间)时再次触发主程序到了。

当预期不会改变目标时间(在数据库中)时,这将起作用。

否则,您必须定期检查数据库并在需要时重置睡眠线程。

答案 3 :(得分:0)

您可以使用mailScheduler进行此操作 http://www.oop-reserch.com/scheduler.html

答案 4 :(得分:0)

除非发送电子邮件的时间非常重要,否则您只需添加一个cron作业即可每小时左右开始检查,而不是继续运行。

就检查本身而言,您可以使用DateFormat中的to string方法将值存储在数据库中,并在执行检查时使用String构造函数将字符串恢复为Date并进行比较。 / p>