写文章

spring 两种实现定时任务的方式

2018-11-29 05:35:45

2237 | 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

收藏
分享