我正在使用 Spring 并创建了一个 Web 应用程序。在我的网络应用程序中,我有一个休息服务。我有一种称为 process 的休息方法,它接收用户的详细信息(来自 Angular ui)并将用户详细信息保存到数据库(SQLite)
基本上我想做的是当用户发起休息调用时。我想启动一个单独的线程(仅存在一个线程)。该线程将轮询数据库中的某些值,并在找到某些值时向管理员发送电子邮件。我需要该类是线程安全的。请参阅下面的内容。我使用这样的东西正确吗?我需要 @Async 注释吗?或者我应该使用 TimerTask 代替?
@EnableScheduling
public class DBPoller {
@Scheduled(fixedRate = 5000)
public void checkDatabase() {
//checks the db for certain values
}
}
最佳答案
你必须写
@EnableScheduling
在应用程序的主类中 DBPoller 类必须是 Spring 框架的一个组件。
因此必须将注解@Component(或@Service)添加到DBPoller类的头部
关于Spring 和计划/重复任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28569879/