首页 > 解决方案 > 定期检查数据库

问题描述

我想用java做一个后台服务,我有一个定期检查数据库的功能。如果没有要发送的电子邮件,它将休眠几分钟,如果有要发送的电子邮件,它将运行该功能并将电子邮件发送给用户。

我的问题是,我应该使用哪种方法:Schedule或者ExecutorService 如果我使用它们有什么好处。

注意更新*

标签: javaservicetimerexecutorserviceschedule

解决方案


如果您使用的是 Java EE,那么@Schedule注释应该很容易满足您的需求。它只是比管理更简单ExecutorService,并且不需要在应用程序容器中进行任何配置。

@Schedules ({
   @Schedule(dayOfMonth="Last"),
   @Schedule(dayOfWeek="Fri", hour="23")
})
public void doPeriodicCheck() { ... }

如您所见,您还可以组合多个@Schedule,所以对我来说它也比ExecutorService.


推荐阅读