如此简单Quartz教程,你学会了嘛?

您所在的位置:网站首页 铁皮石斛有什么疗效 如此简单Quartz教程,你学会了嘛?

如此简单Quartz教程,你学会了嘛?

#如此简单Quartz教程,你学会了嘛?| 来源: 网络整理| 查看: 265

什么是Quartz?

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz是一个完全由java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能, 但就其简易形式看,你会发现它易用得简直让人受不了!。

方法一:调用execute()方法

首先在pom文件中导入quartz的包

org.quartz-scheduler quartz 2.3.0

实现org.quartz.Job接口,且在execute()方法中写业务逻辑!

public class HelloQuartz implements Job{ public void execute(JobExecutionContext arg0) throws JobExecutionException { // TODO Auto-generated method stub //打印当前的执行时间 例如 2017-11-23 00:00:00 Date date = new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("现在的时间是:"+ sf.format(date)); //具体的业务逻辑 if(sf.format(date).equals("2019-05-14 10:29:00")) { System.out.println("当前时间进行中"); } }

调用withIntervalInSeconds()方法,告诉quartz多少秒执行一次

 SimpleTrigger trigger =TriggerBuilder.newTrigger().withIdentity("myTrigger").startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).repeatForever()) .build();//withIntervalInSeconds(1)每秒执行一次

 如果不调用withIntervalInSeconds()方法,也可以使用cron表达式的方式去执行。http://cron.qqe2.com/ 会帮你生成你想要的执行时间。

public static void main(String[] args) throws SchedulerException { //创建一个jobDetail的实例,将该实例与HelloQuartz Class绑定 JobDetail jobDetail = JobBuilder.newJob(HelloQuartz.class).withIdentity("myJob").build(); //创建一个Trigger触发器的实例,定义该job立即执行,并且每2秒执行一次,一直执行 CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("cronTrigger") .withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ? ")).build();//通过表达式的形式来设置执行时间 //创建schedule实例 StdSchedulerFactory factory = new StdSchedulerFactory(); Scheduler scheduler = factory.getScheduler(); scheduler.start(); scheduler.scheduleJob(jobDetail,cronTrigger); } 效果展示

方法二:注解的方式 @EnableScheduling和@Scheduled

先在SpringbootApplication.java启动的时候加入@EnableScheduling来开启任务注解

@SpringBootApplication @EnableScheduling public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }

在对应的方法上加入调度的注解即可@Scheduled(cron="0/1 * * * * ?")每秒钟执行一次

@Scheduled(cron="0/1 * * * * ?") @Override public void quartz() { System.out.println("执行中"); } 效果展示 

 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3