Spring Boot中的时间安排

时间:2019-01-24 07:04:09

标签: java spring spring-boot

我有所请求用户的列表,我想每天每天晚上7点上载用户列表。我该如何使用Spring Boot做到这一点。是的,它还应该检查列表是否可用。

2 个答案:

答案 0 :(得分:4)

您可以在您的Bean方法之一中使用@Scheduled批注来实现此目的。为了启用调度,您需要将@EnableScheduling批注放入您的一个配置类中,该类可以是主类:

@SpringBootApplication
@EnableScheduling
public class TestingApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestingApplication.class, args);
    }
}

然后创建一个类,用@Component对其进行注释,并使用内部带有cron语句的@Scheduled注释创建一个方法:

@Component
public class MyWorkerComponent {

    @Autowired
    private MyListChecker myListChecker;

    @Scheduled(cron = "0 0 19 * * ?")
    public void doTheListThingy() {
        if (myListChecker.isTheListAvailable()) {
            // your task logic
        }
    }
}

答案 1 :(得分:1)

首先,当应用程序具有多个实例且任务需要执行一次或可以执行多次时,应该进行分类。

如果任务可以执行一次以上,则@Pijotrek和@mkjh提供的方法很好。如果仅必须执行一次任务,则必须使用Quartz Scheduler或其他框架支持分发调度任务系统。您可以从here

获取更多信息