初识quartz(入门案例)+常用的cron表达式

WuXuanKun WuXuanKun     2022-08-18     430

关键词:

1.Quartz架构图

1.实体层

package cn.happy.entity;
//1.
public class Plan {
    //时间
    private String date;
    
    //任务
    private String task;

    
    public Plan(String date, String task) {
        this.date = date;
        this.task = task;
    }

    public Plan() {
    }

    @Override
    public String toString() {
        return "Plan [date=" + date + ", task=" + task + "]";
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getTask() {
        return task;
    }

    public void setTask(String task) {
        this.task = task;
    }
    
    

}
Plan实体类

 

2.服务层

package cn.happy.service;

import java.util.ArrayList;
import java.util.List;
//2.
import cn.happy.entity.Plan;

public class RemindService {
    //0.2用来打印集合中提醒内容的方法
    public void printMessage(){
        List<Plan> list=getPlasnForToday();
        for(Plan plan : list){
            //单个的plan 
            System.out.println("计划的时间"+plan.getDate()+"\t计划内容:"+plan.getTask());
        }
    }
    
    //创建一个集合,并且方法返回值是一个集合类型
    public List<Plan>  getPlasnForToday(){
        List<Plan> list=new ArrayList<Plan>();
        Plan plan1=new Plan("2016年12月17日","月底可以买回家的车票!");
        Plan plan2=new Plan("2016年12月19日","webservice");
        list.add(plan2);
        list.add(plan1);
        return list;
    }

}
RemindService

3.任务类的定义RemindJob implements Job

package cn.happy.quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import cn.happy.service.RemindService;

//让一个普通类变成计划
public class RemindJob implements Job{
    //植入service 对象
        private RemindService service=new RemindService();
        @Override
        public  void execute(JobExecutionContext context)throws JobExecutionException{
            service.printMessage();
            
        }

        public RemindService getService() {
            return service;
        }

        public void setService(RemindService service) {
            this.service = service;
        }
}
RemindJob

3.在Test类中综合咱们的计划和触发器

 

 调度器≈Job+trigger

package cn.happy.test;

import java.util.Date;

import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

import cn.happy.quartz.RemindJob;

public class MyQuertzTest {
    public static void tool() throws SchedulerException,InterruptedException{
        //第一步构建Job
        JobDetail job=JobBuilder.newJob(RemindJob.class)//
                .withIdentity("job1","group1")//
                .build();
        
        //第二步构建Trigger
        /*Date runTime=DateBuilder.evenMinuteDate(new Date(System.currentTimeMillis()));
        Trigger trigger=TriggerBuilder.newTrigger().withIdentity("trigger1","group1")//
                .startAt(runTime).build();//系统当前时间的下一分钟打印一次*/        
        
        /*Trigger trigger=TriggerBuilder.newTrigger()//
        .withIdentity("myTrigger","myTriggerGroup")//
        .withSchedule(CronScheduleBuilder.cronSchedule("0 01 09 ? * 1#3 2016")).build();*/
        
        
        
        
        /*//在系统时间一分钟后打印一次
        Trigger trigger=TriggerBuilder.newTrigger()//
                .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))//
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()//
                        .withIntervalInMinutes(1)
                        .repeatForever())//
                .startAt(new Date(System.currentTimeMillis()+2000))//
                .build();*/
        
        
        
        /*//1.3系统当前时间开始每两秒钟打印一次
        Trigger trigger=TriggerBuilder.newTrigger()//
                .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))//
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()//
                        .withIntervalInSeconds(2)//2秒出现一次
                        .repeatForever()//
                        )//
                .startAt(new Date(System.currentTimeMillis()))//
                .build();*/
        
        
        /*Trigger trigger=TriggerBuilder.newTrigger()//
        .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))//
        .withSchedule(SimpleScheduleBuilder.simpleSchedule()//
                .withIntervalInSeconds(2)//2秒出现一次
                )//
        .startAt(new Date(System.currentTimeMillis()+2000))//
        .build();*/
        
        
        
        /*Trigger trigger=TriggerBuilder.newTrigger()//
                .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))//
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()//
                        .withIntervalInMilliseconds(2)//两毫秒出现一次
                        .repeatForever())//
                .startAt(new Date(System.currentTimeMillis()+2000))//
                .build();*/
        
        
        
        /*//隔5秒打印一次
        Trigger trigger=TriggerBuilder.newTrigger()//
                .withIdentity("myTrigger","myTriggerGroup")//
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()//
                        .withIntervalInSeconds(5)//
                        .repeatForever())
                .startAt(new Date())//
                .build();*/
        
        
        //隔5秒打印一次
                Trigger trigger=TriggerBuilder.newTrigger()//
                        .withIdentity("myTrigger","myTriggerGroup")//
                        .withSchedule(CronScheduleBuilder.cronSchedule("0 0 10 ? * 6L"))//每月最后一个星期五10:00运行
                        .startAt(new Date())//
                        .build();        
        
        
        /*Trigger trigger=TriggerBuilder.newTrigger()//
                .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))//
                .withSchedule(SimpleScheduleBuilder.simpleSchedule()//
                        .withIntervalInSeconds(2)//
                        )//
                .startAt(new Date(System.currentTimeMillis()+2000))//
                .build();//需要放开第三步中注释的两行    运行完毕后服务也停止了*/        
        
        
        
        
        //第三步绑定  Job 和 Trigger
        SchedulerFactory sf=new StdSchedulerFactory();
        Scheduler sched=sf.getScheduler();
        sched.scheduleJob(job,trigger);
        sched.start();
        //Thread.sleep(3000);//睡眠3秒钟
        //sched.shutdown();//停止
    }
    
    
    public static void main(String[] args) throws SchedulerException ,InterruptedException{
        tool();
        System.out.println("aaaaaaaaa");
        
    }
}
测试类

 

总结:常用的Cron表达式

 

 

 

 

quartz学习--quartz基本介绍和cron表达式

...   一.Quartz大致简介        二.Cron表达式 一.Quartz大致简介Quartz是完全由java开发的一个开源的任务日程管理系统?任务日程管理系统换句话说就是:?一个预先确定的日程时间到达时,负责执行任务的一个系... 查看详情

quartz的cron表达式

按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数)月(0~11) 天(星期)(1~71=SUN或SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以... 查看详情

quartz框架之cron表达式

目录1、简介2、CronTrigger及cron表达式1、简介Quartz是多功能开源的任务调度库。主要的类有:Scheduler-themainAPIforinteractingwiththescheduler.(与调度器交互的主API类)Job-aninterfacetobeimplementedbycomponentsthatyouwishtohaveexecutedbythescheduler.&#x... 查看详情

Cron Expression (Quartz) 用于每个午夜 12 点运行的程序

...格林威治标准时间午夜12点运行程序的QuartzScheduler中的cron表达式是什么。我以前从未使用过石英,所以我还在学习。是表达式0012**?还是12pm(n 查看详情

cron表达式详解

cron表达式主要是用在Quartz框架中,Quartz是一个完全由java编写的开源作业调度框架,最主要的功能就是调度器(完成定时任务),可以与javaEE或者javaSE应用程序相结合也可以单独使用,能借助关系数据库和JDBC作业存储支持集群,负... 查看详情

Quartz cron 触发器在每天 00 时运行的表达式是啥?

】Quartzcron触发器在每天00时运行的表达式是啥?【英文标题】:WhatistheexpressionforQuartzcrontriggertorunateverydayat00hr?Quartzcron触发器在每天00时运行的表达式是什么?【发布时间】:2012-02-0309:35:40【问题描述】:每天00点运行的批处理作... 查看详情

初识mybatis之入门案例

我也是自学了一下,在idea中基于maven的mybatis的配置。有什么不对的地方,请指正,谢谢。 1.1咋们先来配置测试一下,配置mybatis的图解: 1.2pom.xml需要mybatis的依赖节点,节点如下:1<dependencies>2<dependency>3<groupId&... 查看详情

cron表达式(代码片段)

概述Cron表达式通常用在定时任务中,主要用来设置定时任务的触发时间,如每天一点执行一次等,下面所说的就是Quartz中会使用到Cron表达式。Cron表达式支持7个字段,分别是秒、分、时、日、月、周、年。也就是... 查看详情

定时任务quartz@scheduled注解中的cron表达式详解示例(代码片段)

定时任务的cron表达式Cron表达式对特殊字符的大小写不敏感,对代表星期的缩写英文大小写也不敏感。一.cron表达式的格式秒分时日月星期年(可省略)以空格隔开二.特殊符号详解?该字符只在日期和星期字段中使用,它通常... 查看详情

bos物流项目第十三天(代码片段)

...Quartz概述a.Quartz介绍和下载b.入门案例c.Quartz执行流程d.cron表达式2、在BOS项目中使用Quartz创建定时任务3、在BOS项目中使用JavaMail发送邮件4、HighCharts概述a.HighCharts介绍b.在线演示5、基于HighCharts实现区域分区分布图 1 Quartz概... 查看详情

quartz中的常用组件之间的关系(代码片段)

注意:本文应用了Quartz入门中的入门案例作为基础###1.Job和JobDetail的关系介绍Job:工作任务调度接口,任务类需要实现的接口。该接口中定义了execute方法,类似JDK提供的TimeTask类的run方法。在这里面编写任务执行... 查看详情

quartz中的常用组件之间的关系(代码片段)

注意:本文应用了Quartz入门中的入门案例作为基础###1.Job和JobDetail的关系介绍Job:工作任务调度接口,任务类需要实现的接口。该接口中定义了execute方法,类似JDK提供的TimeTask类的run方法。在这里面编写任务执行... 查看详情

quartz定时基础(代码片段)

...时间2.6SimpleTrigger2.7CronTrigger2.7.1案例:每s执行一次2.7.2Cron表达式 2.8Scheduler:工厂模式2.8.1StdSchedulerFactory2.8.2Scheduler的主要函数2.9quartz.properties文件2.9.1非持久化配置2.9.2持久化配置2.9.3JDBC插入表顺序3.Spring、Quartz整合3.1使用Quartz... 查看详情

quarz入门案例

介绍Quartz框架是一个全功能、开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统。Quartz可以执行上千上万的任务调度。  核心概念 Quartz核心的概念:scheduler任务调度... 查看详情

在线cron生成器

什么是cron表达式:cron表达式主要是用在Quartz框架中,Quartz是一个完全由java编写的开源作业调度框架,最主要的功能就是调度器(完成定时任务),可以与javaEE或者javaSE应用程序相结合也可以单独使用,能借助关系数据库和JDBC作业... 查看详情

quartz定时任务触发器启动时设置(代码片段)

需求为了将触发器的Cron表达式放在数据库里,方便维护。所以需要在项目启动时去数据库获取Cron表达式,并配置触发器,添加到调度器里。实现在配置定时任务相关的Bean时,通过设置init方法,实现配置Bean时执行从数据库获取C... 查看详情

java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟

】javaQuartzSchedulercron表达式每隔30分钟后一刻钟【英文标题】:javaQuartzSchedulercronexpressionforeveryafter30minutesquarterpastthehours【发布时间】:2016-10-0808:34:30【问题描述】:我知道如何通过使用以下cron表达式每30分钟运行一次作业:00/30*... 查看详情

请问quartz的每天2:30至22:30之间每隔十分钟触发的cron表达式为“030/10

-22**?”正确吗?参考技术A030/10-22**?这样貌似是10-22点每个半小时触发一次追问提交有误,是030/102-22**?意思是2点至22点的30分开始的每隔十分钟 查看详情