范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

利用Spring的ThreadPoolTaskScheduler实现轻量级任务调度

  在JAVA单体应用中需要一个使用简单性能可靠的调度功能,要求可以通过Cron表达式配置触发时间并且任务执行时间可以修改并且立即生效,可以在运行时动态增加、停止、重启job等。
  经过研究 org.springframework.scheduling.annotation.SchedulingConfigurer  满足通过Cron表达式配置触发时间、任务执行时间可以修改但不满足修改cron表达式后立即生效,也不支持运行时动态增加、停止、重启job。
  进一步研究发现可以使用 org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler  满足全部需要。示例代码如下:
  初始化 ThreadPoolTaskScheduler  :  @Configuration  public class AppConfig {      @Bean      @ConditionalOnBean      public ThreadPoolTaskScheduler getThreadPoolTaskScheduler(){          ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();          taskScheduler.setPoolSize(10);          taskScheduler.setThreadNamePrefix("job-schedule-");          //   *Set whether to wait for scheduled tasks to complete on shutdown,          //    not interrupting running tasks and executing all tasks in the queue.          taskScheduler.setWaitForTasksToCompleteOnShutdown(true);          /**           *  Set the maximum number of seconds that this executor is supposed to block           *  on shutdown in order to wait for remaining tasks to complete their execution           *  before the rest of the container continues to shut down. This is particularly           *  useful if your remaining tasks are likely to need access to other resources           *  that are also managed by the container.           */          taskScheduler.setAwaitTerminationSeconds(60);          return taskScheduler;      }  }
  业务对象 SysJobSchedule  :  public class SysJobSchedule {      private String name;      private String code;      private String comment;      private String cron;      private String className;      private Boolean deleteFlag = false;      private Boolean stopFlag = false;      .....   }
  核心 SmartScheduleJob   @Service  @Slf4j  @EnableScheduling  public class SmartScheduleJob {      private ConcurrentHashMap futureConcurrentHashMap = new ConcurrentHashMap<>();      @Autowired      private ThreadPoolTaskScheduler threadPoolTaskScheduler;              /**       * 启动调度       * @param jobSchedule       */      public void startSchedule(SysJobSchedule jobSchedule) {          if (jobSchedule != null) {              log.info("启动Job {}",jobSchedule.getClassName());              stopSchedule(jobSchedule.getClassName());              initSchedule(jobSchedule);          }      }        /**       * 关闭调度       * @param className       */      public void stopSchedule((SysJobSchedule jobSchedule) {          String className = jobSchedule.getgClassName();          ScheduledFuture scheduledFuture = this.futureConcurrentHashMap.get(className);          if (scheduledFuture != null) {              log.info("==关闭Job:{}", className);              futureConcurrentHashMap.remove(className);              if (!scheduledFuture.isCancelled())                  scheduledFuture.cancel(true);          }      }          private void initSchedule(SysJobSchedule jobSchedule) {          if(jobSchedule.getStopFlag())              return;          ScheduledFuture future = this.threadPoolTaskScheduler.schedule(                  //1.添加任务内容(Runnable)                  () -> {                      this.doTask(jobSchedule);                  },                  //2.设置执行周期(Trigger)                  triggerContext -> {                                                    String cron = jobSchedule.getCron();                                       return new CronTrigger(cron).nextExecutionTime(triggerContext);                  }          );          //将ScheduledFuture添加到ConcurrentHashMap中          futureConcurrentHashMap.put(jobSchedule.getClassName(), future);      }        private void doTask(SysJobSchedule jobSchedule) {        doSomething…      }    }
  ThreadPoolTaskScheduler  为轻量级任务调度器适用于单体应用,不适合分布式集群部署,由于节点之间没有共享信息,因而会出现多次调度的情况.

为什么许多小米老用户,换下一部手机时,再也不考虑小米了?为什么许多小米老用户都说换下一部手机时,再也不会考虑小米了?其实主要有这两个原因。第一价格涨上去了,品控却不行了我们来回顾一下历代小米手机的起售价,小米1起售价1999小米2起售价硬盘格式化数据还能恢复吗?硬盘格式化数据还能恢复吗?硬盘就相当于电脑的大脑,它存储着电脑上的所有数据,要是硬盘被格式化了,那么电脑基本也就开不了机了,但是这种格式化对数据本身并没有被立即擦除,只是改变了文件工信部四方面工作加强动力电池全生命周期溯源管理光明网讯(记者张慕琛)1月12日,工业和信息化部召开新闻发布会,介绍2021年汽车工业发展情况,工信部装备工业一司司长王卫明参加本次发布会。王卫明介绍,随着我国新能源汽车保有量快速魅蓝10外观曝光,果然是基础手机,网友拿什么吸引魅友回归?就在1月11日,魅蓝官方正式官宣回归后旗下第一款机型魅蓝10,而在官宣的同时,很明显的标注了基础的字眼,让魅友激动的心有了猜测,这款魅蓝10能否继承魅族的创新设计呢?目前,魅蓝10iPhoneSE3真的可以买吗?好像还不错近日外媒曝光了iPhoneSE3的渲染图,新机将采用直角边框设计,并且拥有五种配色可供选择,爆料图中没有提及经典的黑色配色。当然了,在国内接近3000元的价格已经可以购买买安卓旗舰iPhone13再次降价,全系版本已重回低价,加9元还赠送充电器苹果新机发布之后销量并不会一直都很好,在发布半年的时间里会有三次销量特别高的时期,至于其它时期销量就比较一般了,首先第一个时期是苹果新机首销的时候,新机首销人气十足,那个时候入手苹高通新骁龙8加持,GPU性能提升超预期,手机游戏或迎来次时代智能手机发展早期,消费者对手机芯片的认知普遍比较低,大家认为选择手机时一款CPU性能较强的芯片就能满足我们大部分需求了,毕竟长期以来大家印象中CPU和处理器直接划等号,与电脑笔记本vivoS12Pro综合体验分享前言vivoS系列自从问世以来就很受欢迎了。一大部分原因来自于它的一个外观颜值设计以及强大的拍照效果,特别是在自拍上面可以说是行业里面的一个标杆。其实S系列不仅仅是自拍做得好。其实关于淘宝和天猫融合淘宝验号黑科技尽在黑号库有问我关于淘宝和天猫融合这个事情怎么看还怎么看,这不显然的要一致对外,不要再窝里斗了,以前淘宝发育的好好的,就被天猫抽血,抽的都低血糖了,半路莫名其妙又杀出来个拼多多把淘宝打到了重python数据统计分析1。常用函数库scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy。stats以前有一个models子模块,后来被移除了。这个模块被价格更低?小米12Lite通过EEC认证IT之家1月12日消息,上月,外媒Xiaomiui曝光了大量关于小米海外新机的信息,包括小米12Lite和小米12LiteZoom等。昨日晚间,Xiaomiui爆料称,型号为220
芯朋微国内电源芯片三甲深耕家电领域,国产趋势下增长确定选股理由科创板新股上市业绩稳定增长证券代码688508评级A本文分为六部分一主营业务二公司治理三财务分析四核心竞争力及投资逻辑五盈利预测及估值六个股点评数据截止日期2020年3月3钢研高纳航空发动机高温合金龙头,受益发动机国产化大趋势选股理由军工发动机概念近期股价创阶段性新高证券代码300034评级A本文分为六部分一主营业务二公司治理三财务分析四核心竞争力及投资逻辑五盈利预测及估值六个股点评数据截止日期2020北摩高科国内飞机刹车系统龙头,多元化向民品迈进增长可期独立客观第三方研究,为您筛选优质上市公司证券代码002985综合评级A一主营业务评分751业务分析公司主营业务是为军民飞机特种车辆提供飞机刹车系统(包含电子控制盒液压电磁阀刹车盘等航发动力国内航空发动机龙头,军品稳定民品是增长关键选股理由国防军工2020年军工行业盈利改善明显市净率低于2证券代码600893评级A本文分为六部分一主营业务二公司治理三财务分析四核心竞争力及投资逻辑五盈利预测及估值六投资观点数据数字认证数字认证领域龙头,无纸化大趋势下将保持稳定增长选股理由营收及净利润增长近期股价创历史新高证券代码300579评级A数据截止日期2019年12月31日单位亿元成立日期2001年所在地北京一主营业务主营业务电子认证服务安全集成和安最新官宣Apple月底发布的那款iPad据说就长这样了本月20号,苹果对外公开邀请函,将会在30号举行发发布会。大家非常期待的全面屏iPad升级版的MacBookAirMacmini或许还会有MacBookPro反正这场发布会是值得我商标热点丨喜茶注册喜茶饼家商标吴亦凡事件相关商标被抢注17月31日晚,北京市公安局朝阳分局官微发布通报,吴亦凡涉嫌强奸罪,被朝阳公安分局依法刑事拘留。吴亦凡事件中女孩名字一些网络梗被抢注为商标,包括见亦思签美竹吴签小G娜都美竹吴签等等商标热点丨华为注册脑海商标,字节跳动申请抖音云游戏1近日,北京字跳网络技术有限公司新增多项抖音云游戏商标申请信息,国际分类涉及广告销售教育娱乐通讯服务设计研究科学仪器等2浙江吉利控股集团有限公司申请注册朗歌地图商标,或将推出全新地腾讯打造新综艺你我皆王者,已申请商标喜欢看综艺的朋友们有没有注意到,腾讯打造了一个新综艺,名为你我皆王者。从这个综艺名称就可以看出来,这是一个电竞类综艺,和腾讯旗下某游戏相关。有路透消息,你我皆王者集结了张翰龚俊许魏打着北大的旗号招生?侵犯北大注册商标权近日,北大两次发函要求宁德北大培文学校更名一事引发热议。据了解,宁德北大培文学校是一个集幼儿园小学初中高中及国际部于一体的全日制学校,由蕉城区人民政府北大培文教育文化产业(北京)有40个国家知识产权示范企业典型案例名单,都有谁上榜?日前,国家知识产权局发布关于确定国家知识产权示范企业典型案例的通知,经企业申报地方局推荐专家评审等环节,确定40个案例为国家知识产权示范企业典型案例。快来跟随小编看看都有哪家企业上