全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Spring Quartz2 动态任务的实例详解

Spring Quartz2 动态任务的实例详解

此处使用的是Quartz中SimpleScheduleBuilder类,非CronScheduleBuilder,CronScheduleBuilder是Cron表达式的。具体请自行百度。

实现代码: 

/** 
   * 新增任务 
   * @param scheduleJob 
   * @throws Exception 
   */ 
  @Override 
  @SuppressWarnings("unchecked") 
  public void addJobSimple(ScheduleJob scheduleJob) throws Exception{ 
    TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(), scheduleJob.getJobGroup()); 
    //任务触发 
    Trigger trigger = scheduler.getTrigger(triggerKey); 
    if (null == trigger) { 
      JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(scheduleJob.getClazz())) 
       .withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).build(); 
      jobDetail.getJobDataMap().put("scheduleJob", scheduleJob); 
       
      SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule(); 
      if("秒".equals(scheduleJob.getTimeType()) ||  
          "second".equalsIgnoreCase(scheduleJob.getTimeType())){ 
        simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()).repeatForever(); 
      }else if("分".equals(scheduleJob.getTimeType()) || "分钟".equals(scheduleJob.getTimeType()) ||  
          "minute".equalsIgnoreCase(scheduleJob.getTimeType())){ 
        simpleScheduleBuilder.withIntervalInMinutes(scheduleJob.getTimeValue()).repeatForever(); 
      }else if("时".equals(scheduleJob.getTimeType()) || "小时".equals(scheduleJob.getTimeType()) ||  
          "hour".equalsIgnoreCase(scheduleJob.getTimeType())){ 
        simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).repeatForever(); 
      }else if("天".equals(scheduleJob.getTimeType()) ||  
          "date".equalsIgnoreCase(scheduleJob.getTimeType())){ 
        simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).repeatForever(); 
      } 
      ScheduleBuilder<SimpleTrigger> schedBuilder = simpleScheduleBuilder.withMisfireHandlingInstructionNextWithRemainingCount(); 
       
      trigger =TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()) 
          .withSchedule(schedBuilder).build(); 
      trigger = TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).withSchedule(schedBuilder).build(); 
      scheduler.scheduleJob(jobDetail, trigger); 
      log.info(CC.LOG_PREFIX + "新增简单任务:"+JasonUtils.Object2String(scheduleJob)); 
    }else { 
      this.updateJobCron(scheduleJob); 
    } 
  } 

需要注意是的,当定时任务只执行一次时,就要仔细看代码,如上面的简单定时任务,刚开始是我这样的:

simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()); 

结果只执行一次,而我需要的是不断循环执行,最后改成:

simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()).repeatForever(); 

可以看出,后面多了个:repeatForever(),表示永远重复。 

如果是希望执行多少次后不执行,就使用:.withRepeatCount(triggerRepeatCount),如下:

simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).withRepeatCount(triggerRepeatCount); 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Spring  # Quartz2  # 动态任务  # 动态任务的实例详解  # 动态任务的使用实例  # Spring quartz Job依赖注入使用详解  # spring和quartz整合  # 并简单调用(实例讲解)  # springboot整合quartz实现定时任务示例  # SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法  # 详解Spring整合Quartz实现动态定时任务  # Spring整合Quartz实现动态定时器的示例代码  # 在Java的Spring框架中配置Quartz的教程  # 的是  # 如有  # 希望能  # 而我  # 刚开始  # 可以看出  # 谢谢大家  # 仔细看  # 需要注意  # 疑问请  # 请自行  # triggerKey 


相关文章: c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  江苏网站制作公司有哪些,江苏书法考级官方网站?  如何获取开源自助建站系统免费下载链接?  建站之星在线客服如何快速接入解答?  建站之家VIP精选网站模板与SEO优化教程整合指南  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何通过服务器快速搭建网站?完整步骤解析  常州自助建站费用包含哪些项目?  长沙做网站要多少钱,长沙国安网络怎么样?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  山东云建站价格为何差异显著?  招商网站制作流程,网站招商广告语?  建站之星后台管理系统如何操作?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何通过cPanel快速搭建网站?  定制建站策划方案_专业建站与网站建设方案一站式指南  建站主机是否属于云主机类型?  ,在苏州找工作,上哪个网站比较好?  制作公司内部网站有哪些,内网如何建网站?  建站之星代理如何获取技术支持?  建站10G流量真的够用吗?如何应对访问高峰?  实例解析Array和String方法  SQL查询语句优化的实用方法总结  如何快速搭建支持数据库操作的智能建站平台?  西安大型网站制作公司,西安招聘网站最好的是哪个?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  Android自定义listview布局实现上拉加载下拉刷新功能  兔展官网 在线制作,怎样制作微信请帖?  css网站制作参考文献有哪些,易聊怎么注册?  制作宣传网站的软件,小红书可以宣传网站吗?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何在Windows 2008云服务器安全搭建网站?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  如何在建站之星网店版论坛获取技术支持?  香港服务器选型指南:免备案配置与高效建站方案解析  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何通过二级域名建站提升品牌影响力?  如何制作算命网站,怎么注册算命网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站制作网站,深圳做网站哪家比较好?  建站为何优先选择香港服务器?  如何快速生成可下载的建站源码工具?  香港服务器网站推广:SEO优化与外贸独立站搭建策略 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。