quartz框架使用基础

核心概念

  • quartz不需要依赖任何框架即可使用
  • Job:要执行得任务, JobDetail:对job的描述
  • Scheduler:调度器
  • Trigger 触发器

cron表达式

  • cron表达式

    • 基本格式: 秒 分 小时 日期 月份 星期 年份(一般忽略)

      • 任何一个数字都触发
    • n/m 从n开始。每隔m 执行 (*/m 等同于 0/m)

    • n-m 从n到m 每个单位触发一次

    • n1,n2,n3,n4 在指定的这几个点执行

    • ? 特殊情况使用: 星期和日期有冲突时有一个必须使用

      CronScheduleBuilder schedBuilder = CronScheduleBuilder
      .cronSchedule("* * * * * ?");//cron表达式

    每天凌晨2点执行

      CronScheduleBuilder schedBuilder = CronScheduleBuilder
      					.cronSchedule("0 0 2 * * ?");
    

    每5分钟执行一次

      CronScheduleBuilder schedBuilder = CronScheduleBuilder
      					.cronSchedule("0 0/5 * * * ?");
    

quartz使用

  • quartz使用

    先创建一个任务 (继承Job)

      public class MyJob implements Job{
      
          
      	public void execute(JobExecutionContext context) throws JobExecutionException {
      			System.out.println("自定义我的任务:"+new Date());
      	}
      
      }
    

    调度器的使用

    • 由一个JobDetail描述一个具体任务job

    • Trigger描述一个触发规则

    • Scheduler负责调度

        public class TestQuartz {
        	public static void main(String[] args) throws SchedulerException {
        		//调度器工厂类
        		SchedulerFactory factory = new StdSchedulerFactory();
        		Scheduler scheduler = factory.getScheduler();
        		//开始工作
        		scheduler.start();
        		
        		//创建Job的描述也就是JobDetail (JobBuilder来创建)  withIdentity 前面参数是名称 后面参数是组
        		JobDetail detail = JobBuilder.newJob(MyJob.class)//获取作业对象
        				.withIdentity("testJob","groudJob")
        				.build();
        		
        		//为trigger定义规则
        		CronScheduleBuilder schedBuilder = CronScheduleBuilder
        				.cronSchedule("* * * * * ?");//cron表达式
        		
        		//创建一个触发器
        		Trigger trigger =TriggerBuilder.newTrigger()
        				.withIdentity("testTrigger","testGroup")//第一个参数为名称 第二个为组
        				.withSchedule(schedBuilder) //提供触发规则
        				.startNow()//马上按照规则执行
        				.build();//创建
        		
        		//开始调度
        		scheduler.scheduleJob(detail,trigger);
        	}
      

      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值