spring 定时执行job
Spring提供了一个非常好用的定时任务模块:Spring Task。它可以很容易地创建定时任务。以下是如何使用Spring Task来定期执行一个Spring Batch Job。
- 配置一个TaskScheduler:
@Configuration
@EnableScheduling
public class SchedulerConfiguration {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(10);
return scheduler;
}
}
- 在你要执行的Job旁边添加一个
@Scheduled
注解:
@Autowired
JobLauncher jobLauncher;
@Autowired
Job myJob;
@Scheduled(cron = "0 0 * * * *") // 这个Cron表达式表示每小时的0分0秒执行一次
public void run() {
try {
JobParameters parameters = new JobParametersBuilder().addLong("time",System.currentTimeMillis()).toJobParameters();
jobLauncher.run(myJob, parameters);
} catch (Exception e) {
e.printStackTrace();
}
}
这个配置将会让run()
方法每小时执行一次。你可以更改Cron表达式以改变执行频率。
请注意,你也需要在主应用类(通常是名为Application
的类)上添加@EnableScheduling
注解来激活这些定时任务。
这只是使用Spring进行定时任务的基本示例,更复杂的逻辑可能需要更详细的配置。