全网整合营销服务商

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

免费咨询热线: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 


相关文章: 青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  常州企业建站如何选择最佳模板?  网站企业制作流程,用什么语言做企业网站比较好?  建站之星安装提示数据库无法连接如何解决?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  建站主机与服务器功能差异如何区分?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  无锡营销型网站制作公司,无锡网选车牌流程?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  黑客入侵网站服务器的常见手法有哪些?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  C++用Dijkstra(迪杰斯特拉)算法求最短路径  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  如何在Golang中使用replace替换模块_指定本地或远程路径  建站VPS配置与SEO优化指南:关键词排名提升策略  如何挑选高效建站主机与优质域名?  专业公司网站制作公司,用什么语言做企业网站比较好?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  重庆市网站制作公司,重庆招聘网站哪个好?  C#如何在一个XML文件中查找并替换文本内容  高性价比服务器租赁——企业级配置与24小时运维服务  如何通过VPS搭建网站快速盈利?  建站之星伪静态规则如何正确配置?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  建站之星如何助力企业快速打造五合一网站?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  建站与域名管理如何高效结合?  公众号网站制作网页,微信公众号怎么制作?  中山网站制作网页,中山新生登记系统登记流程?  建站之星24小时客服电话如何获取?  制作宣传网站的软件,小红书可以宣传网站吗?  太原网站制作公司有哪些,网约车营运证查询官网?  建站之星CMS五站合一模板配置与SEO优化指南  详解jQuery中基本的动画方法  如何快速查询网址的建站时间与历史轨迹?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何在阿里云部署织梦网站?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站主机选虚拟主机还是云服务器更好?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  佛山网站制作系统,佛山企业变更地址网上办理步骤?  建站之星安装后如何自定义网站颜色与字体?  深入理解Android中的xmlns:tools属性 

您的项目需求

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