spring---定时任务(@Scheduled注解)

时间:2021-06-03 07:51:44

在springMVC里面使用定时任务

(一)在xml里加入task的命名空间

<beans 
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation=http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

(二)启用注解驱动的定时任务<!-- Spring定时任务配置 -->
 

  <task:annotation-driven />


(三)配置定时任务的线程池(多任务时会用到)

<task:scheduler id="myScheduler" pool-size="5"/>



(四)写我们的定时任务

@Scheduled注解为定时任务,cron表达式里写执行的时机


任务一:

import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component//(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)
public class ATaskTest {
//每10秒执行一次
@Scheduled(cron="0/10 * * * * ? ")
public void Atask(){

DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis())+"*********A任务每10秒执行一次进入测试");

}


}

任务二:

package gt.task;

import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;


@Component
public class BTaskTest {

//每5秒执行一次
@Scheduled(cron="0/5 * * * * ?")
public void bTask(){

DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis())+"*********B任务每5秒执行一次进入测试");
}

}
cron表达式待续。。。