quartz使用

note:
maven添加quartz依赖

<!--quartz -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>${quartz.version}</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>${quartz.version}</version>
</dependency>
使用步骤:
  1. 实现job接口创建工作类
  2. 通过工厂类创建调度程序实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
  1. 使用JobBuilder通过工作类创建工作实例。可以设置jobKey和group,传递数据
  // define the job and tie it to our DumbJob class
  JobDetail job = newJob(DumbJob.class)
      .withIdentity("myJob", "group1") // name "myJob", group "group1"
      .usingJobData("jobSays", "Hello World!")
      .usingJobData("myFloatValue", 3.141f)
      .build();
  1. 使用TriggerBuilder为工作实例创建触发器,并设置触发条件。
    note:
    比较常用的的有SimpleTrigger和CronTrigger(cron表达式)
Trigger incrTrigger = newTrigger()
        .withIdentity("incrTrigger", "crawlGroup")
        .withSchedule(cronSchedule("0 35 7-22/5 * * ?"))    // 每天8点到22点每隔5小时触发
        .forJob("incrCrawlJob", "crawlGroup")
        .build();
  1. 通调度程序注册job实例和触发器
scheduler.scheduleJob(incrlJobDetail, incrTrigger);
  1. 启动调度程序
scheduler.start();

备注:

  • 一个触发器只能绑定一个JobDetail
  • 调度程序可以注册多个JobDetail和触发器
  • cron表达式可以在时间段范围的基础上设置间隔多长时间执行
    example:
    7-22/5(7点到22点,每隔5个小时执行一次)
  • JobDetail和触发器不绑定到调度程序上就不会执行
  • 不要忘记启动调度程序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值