Spring 和计划/重复任务

标签 spring rest schedule timertask

我正在使用 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/

相关文章:

php - 根据外键编辑计划

Laravel - 事件开始时发送通知

java - 如何处理响应代码?

java - Spring Cloud 配置模式匹配不适用于 SVN

java - 为 PostgreSQL 使用种子文件时 JPA 中的异常

android - 如何比较多个时间范围并在 Android Compose 中并排显示它们

java - 执行命令在 Spring Roo 中不起作用

java - 使用 JavaScript 从 Restful Web 服务获取数据?

web-services - 拦截 RESTful Web 服务的工具

rest - 如何使用 api 在服务器端渲染 React?