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