原 spring 两种实现定时任务的方式
2249 | 0 | 0
第一种:(@Scheduled注解)
1、在spring的core配置文件中添加空间命名
xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
2、启用定时任务的注解
<task:scheduler id="myScheduler" pool-size="5"/>//多任务时配置线程池,否则项目会报错 id可以随意命名 <task:annotation-driven scheduler="myScheduler"/>
3、在需要执行定时任务的方法上添加注解
@Scheduled(cron="0/3 * * * * ?")//每隔3秒执行一次,具体参数配置自己查找
public void getA() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>..任务A");
}
@Scheduled(cron="0/4 * * * * ?")
public void getB() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>..任务B");
}第二种:使用java自带的ScheduleExecutorService(有四种方法,只演示其中一种)
scheduleAtFixedRate有四个参数,依次是:要执行的任务、初始化延时、时间间隔、时间单位
@PostConstruct//该注解的作用:在项目配置加载完后执行这个方法
public void getD(){
ScheduledExecutorService ses = new ScheduledThreadPoolExecutor(10);
ses.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println(">>>>>>>>>>>>>>>>>..任务D");
}
}, 0, 5, TimeUnit.SECONDS);
}
0

132****1346
3人已关注
领课教育 32643
10405
update 47852
5215
领课教育 18522
husheng 21212
请更新代码 41907
凯哥Java 2488
凯哥Java 2918
凯哥Java 2194