`
xiaoyu1985ban
  • 浏览: 130316 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

获取调度下一次触发时间

    博客分类:
  • Java
阅读更多

需求:1、任务关联调度后,在页面上显示下一次执行(即调度的触发)时间。


技术约束:

         1、关联时,使用的是CronTrigger。

          1、业务中,只有将调度与任务关联时,才创建CronTrigg业务中,


解决方案1:从Scheduler中获取CronTrigger,然后调用getNextFireTime();

问题:返回的时间有时候不准确。

          比如:定义一个4点-5点,每隔一分钟运行的调度。若在4点30分25秒关联任务,下次运行时间应该是4点31分,但从接口中获取的时间是下午4点,即调度的开始时间,只有在调度触发一次之后,获取的才是正确的时间。


解决方案2:解析CronTrigger中定义的CronExpression。 

CronTrigger quatrzTrigger = (CronTrigger)scheduler.getTrigger(.....);
Date nexFireTime = getNextFireTime(quatrzTrigger.getCronExpression());


 private Date getNextFireTime(String cronExpression) {
  if (StringUtil.isEmptyString(cronExpression)){
   return null;
  }
  try {
   CronExpression cron = new CronExpression(cronExpression);
   Date nextFireDate = cron.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
   reeturn  nextFireDate ;

} catch (ParseException e) {
   log.error(e);
   return null;
  }
 }

 

                 

     

 

分享到:
评论

相关推荐

    spring分布式任务调度

    6、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行; 7、自定义任务参数:支持在线配置调度任务入参,即时生效; 8、调度线程池:调度系统多线程触发调度运行,确保调度...

    quartz的分布式调度大致分两种方式实现

    没有标记为恢复的作业将在下一次相关的Triggers触发时简单地被释放以执行。 4.集群功能最适合扩展长时间运行或cpu密集型作业(通过多个节点分配工作负载)。如果需要扩展以支持数千个短期运行(例如1秒)作业,则...

    MySQL Event Scheduler(事件调度器)

    例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL 的事件调度器则可以实现每秒钟执行一个任务,这在一些对实时性要>求较高的环境下就非常实用了。 事件调度器是定时触发执行的,在这个角度上也可以...

    基于SpringBoot+Quartz的轻量级分布式定时任务调度系统源码+项目说明+sql数据库.zip

    - 执行一次:调度过期后,执行一次,并从当前时间开始重新计算下次触发时间; - 放弃执行(默认):调度过期后,忽略过期的任务,从当前时间开始重新计算下次触发时间; - 是否并发执行:单机串行或者并发执行 ...

    xxl-job分布式任务调度平台-其他

    13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务; 14、动态分片:分片广播任务以执行器为维度进行分...

    Job Plus项目是基于SpringBoot+Vue的轻量级定时任务管理系统+源代码+文档说明

    30. 一致性:基于Redis分布式锁保证集群分布式调度的最终一致性, 一次任务调度只会触发一次执行; 31. 全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论...

    当当网开源的分布式作业调度组件 Elastic-Job.zip

    该项目基于成熟的开源产品Quartz和Zookeeper及其客户端Curator进行二次开发。 ddframe其他模块也有可独立开源的部分,之前当当曾开源过dd-soa的基石模块DubboX。elastic-job和ddframe关系见下图Elastic-Job 主要...

    jenkins-helper:监视Jenkins的构建状态和节点状态,同时也提供一些便利功能。MonitorJenkins构建状态和节点状态,并提供一些便捷的服务。

    一款能够极大地提高工作效率的Chrome / Firefox浏览器扩展程序。 下载地址 在线安装 / / 下载文件离线安装 扩展离线安装方法: Chrome :打开chrome://extensions页面,打开开发者模式,重启浏览器( chrome://...

    github_exporter:Prometheus GitHub出口商,重点关注Pull RequestIssueMilestone指标

    完成后,它将获取最近更新的100个项目(以检测新元素和状态已更改的元素), 经常重新获取所有未清项目(默认为每5分钟一次), 默认情况下,每12小时重新获取所有项目。 虽然重新获取的调度在多个go例程中同时发生...

    岳维功 ortp-realease.pdf

    调度询问当前会话是否可以进行发送和接收,如果不能进行收发操作,则处理下一个会话。 这有点类似接口上的操作。调度模块使用的数据结构主要为 ,如下图 所示: Reschedule list all sessions r sessions r max w ...

    C/C++笔试题(附答案,华为面试题系列)

    答:触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE、 INSERT 、 DELETE 这些操作时,数据库就会自动执行触发器所定义的SQL 语句,从而确保对数 据的处理必须符合由这些SQL 语句所定义的规则。 ...

    java 面试题 总结

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 20、EJB与JAVA BEAN的区别? Java Bean 是可复用...

    poule:GitHub自动化的框架

    它允许一次实现行为片段(称为),并能够在三种不同的上下文中调用它们: 作为一次性操作,对全部GitHub项目进行存储。 作为批处理作业的一部分,与多个其他操作一起进行。 作为长期运行的守护程序的一部分,它是由...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    智能变电站自动化系统.docx

    1.1.1 一次设备智能化 与数字化变电站描述的一次设备智能化相比,智能变电站加大了一次设备信息化,可监测更多自身状态信息,也可通过网络获知系统及其他设备的运行状态等信息。自动化程度更高,具有比常规自动化...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    这是一个严重的不一致,没道理我点击页面的按钮,在没有跳转到其他页面的情况下,地址栏显示另一个页面地址,不是吗? 要解决这个问题,我们只需要为form添加一个onsubmit事件处理如下: 添加该事件处理,就能在...

    开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路,可直接做工程模板

    等待上一次数据发送完成时,在发送中断中提取FIFO发送队列中的下一帧数据并发出。 Communi.C的功能为与应用层相关度较高的函数,如发送应用层帧,记录错误。 CAN1_SWI_Handler (void) 实现CAN接收中断触发的内部...

    DataX Web分布式数据同步工具-其他

    用户可通过页面选择数据源即可创建数据同步任务,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。 任务"执行器...

    ASP EXCEL导入SQL

     因为是基于HTTP/HTTPS的资源请求,因此本次连接和下一次到服务器的连接之间没有状态。由于361CRM平台采用了REST架构,因此也就决定了361CRM平台天然就具备以下几方面的优势:  由于REST本身无状态的特性,361CRM...

Global site tag (gtag.js) - Google Analytics