在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

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

2017-3-7 12:52| 发布者: zhangjf| 查看: 1507| 评论: 0

摘要: spring boot 入门到精通:http://www.roncoo.com/course/view/c99516ea604d4053908c1768d6deee3d第一种:(@Scheduled注解) 1、在spring的core配置文件中添加空间命名xmlns:task=http://www.springframework.org/ ...


spring boot 入门到精通:http://www.roncoo.com/course/view/c99516ea604d4053908c1768d6deee3d

第一种:(@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);
}

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-6-17 11:42

Copyright 2015-2025 djqfx

返回顶部