SpringBoot ~ 定时任务Quartz
定时任务Quartz
quartz是一个功能丰富的开源作业调度库
-
添加pom依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
-
创建定时Job
- 通过普通JavaBean创建,添加@Component注解将之注册到容器
/** * @author wsyjlly * @create 2019.07.17 - 14:40 **/ @Component public class ScheduleDemo2 { public void schedule(){ System.out.println("ScheduleDemo2.schedule..."); } }
- 通过继承抽象类QuartzJobBean创建,该方式需要实现该类中的executeInternal方法,该方法在任务被调用时使用。
/** * @author wsyjlly * @create 2019.07.17 - 14:40 **/ public class ScheduleDemo3 extends QuartzJobBean { private String name; public void setName(String name){ this.name = name; } @Override protected void executeInternal(JobExecutionContext jobExecutionContext){ System.out.println("ScheduleDemo3.executeInternal..."+name); } }
-
创建Quartz配置类QuartzConfig对Job进行配置
/** * @author wsyjlly * @create 2019.07.17 - 14:47 **/ @Configuration public class QuartzConfig { @Bean MethodInvokingJobDetailFactoryBean jobDetail1(){ MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean(); bean.setTargetBeanName("scheduleDemo2"); bean.setTargetMethod("schedule"); return bean; } @Bean JobDetailFactoryBean jobDetail2(){ JobDetailFactoryBean bean = new JobDetailFactoryBean(); bean.setJobClass(ScheduleDemo3.class); JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put("name","ysw"); bean.setJobDataMap(jobDataMap); bean.setDurability(true); return bean; } @Bean SimpleTriggerFactoryBean simpleTrigger(){ SimpleTriggerFactoryBean bean = new SimpleTriggerFactoryBean(); bean.setJobDetail(jobDetail1().getObject()); bean.setRepeatCount(3); bean.setStartDelay(1000); bean.setRepeatInterval(2000); return bean; } @Bean CronTriggerFactoryBean cronTrigger(){ CronTriggerFactoryBean bean = new CronTriggerFactoryBean(); bean.setJobDetail(jobDetail2().getObject()); bean.setCronExpression("* * * * * ?"); return bean; } @Bean SchedulerFactoryBean schedulerFactory(){ SchedulerFactoryBean bean = new SchedulerFactoryBean(); SimpleTrigger simpleTrigger = simpleTrigger().getObject(); CronTrigger cronTrigger = cronTrigger().getObject(); bean.setTriggers(simpleTrigger,cronTrigger); return bean; } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SpringBoot ~ 启动系统任务
启动系统任务 SpringBoot对于系统启动时执行的任务,例如配置文件加载,数据库初始化等操作提供了两种解决方案:CommandLineRunner和ApplicationRunner,两者差别主要在于参数。 SpringBoot项目启动时会遍历所有的CommandLineRunner和ApplicationRunner的实现类并调用其中的run方法@Order注解可对于这些实现类调用顺序进行排序 CommandLineRunner的实现类Demo /** * @author wsyjlly * @create 2019.06.14 - 19:36 * 配置启动系统参数 **/ @Component @Order(1) public class MyCommandLineRunner1 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("MyCommandLineRunner1:"+Arrays.toStri...
- 下一篇
SpringBoot ~ 数据校验
SpringBoot数据校验 添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> 编写实体类 /** * @author wsyjlly * @create 2019.06.29 - 12:18 **/ @AllArgsConstructor @NoArgsConstructor @Accessors @Data @TableName(value = "message") public class Message implements Serializable { private Integer id; private Integer mid; @Size(min = 5,max = 10,message = "{message.content.size}") @NotNull(message = "...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- 设置Eclipse缩进为4个空格,增强代码规范
- Windows10,CentOS7,CentOS8安装Nodejs环境