`
xiaoyu1985ban
  • 浏览: 132919 次
  • 性别: 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;
  }
 }

 

                 

     

 

分享到:
评论

相关推荐

    基于事件触发的微网分布式经济调度策略.pdf

    通过事件触发机制,各分布式电源能够获取到最优的有功功率值,进而实现成本最小化下的功率经济分配。 分布式一致性算法是实现微网中分布式电源协调控制的重要手段。一致性算法能够使网络中的所有节点达成一致的控制...

    基于事件触发的微网分布式经济调度策略.docx

    文献[10]提出了一种基于事件触发的多级二次控制方法,针对微电网的频率偏差和功率共享误差进行调整。文献[11]则利用事件触发通信的动态协商算法实现直流比例电流的共享。这些方法显著减少了通信次数,降低了通信负担...

    基于AVR微控制器的时间触发多任务调度器的设计与应用

    一个经验性的方法是选择略大于一次典型交互所需时间的时间片。 在时间触发系统设计中,还需要考虑中断服务程序的处理,以及如何有效地分配和管理任务队列。此外,调度器的性能和效率很大程度上取决于其对多任务的...

    选择一个调度算法,实现处理器调度

    每个进程每次获得一个固定长度的时间片,如果进程在时间片用完之前未能完成,则会自动被移至就绪队列的末尾等待下一次调度。时间片轮转法的一个关键特性是它保证了所有进程都能够得到执行的机会,这对于短进程或是...

    关于自触发采样的程序

    3. **通信调度**:安排下一次数据传输,这需要考虑网络的延迟、丢包等因素。 4. **执行采样**:在计算出的时刻执行实际采样操作。 5. **反馈控制**:将采样结果用于控制器决策,更新系统状态并重复上述过程。 在...

    spring分布式任务调度

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

    操作系统调度算法java

    `addProcess()`方法用于向队列中添加新进程,`start()`方法启动调度循环,`scheduleNext()`安排下一次调度事件。 在实际操作中,还需要考虑更多的细节,例如进程的优先级、I/O阻塞、实时调度等。此外,为了模拟更...

    进程调度VB

    3. 时间片轮转(RR):将CPU时间分割成固定长度的时间片,每个进程获得一个时间片后执行,如果未完成则进入就绪队列等待下一次分配。在VB中,需要维护一个进程队列,并跟踪每个进程的执行时间,当时间片用尽时进行...

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

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

    触发计时器

    - **Java中的Timer类**:Java提供了强大的`Timer`类来实现计时器功能,支持一次性或周期性任务的调度。 - **Python中的threading模块**:通过`threading.Timer`类,可以在Python中轻松实现计时器功能。 - **C#中的...

    XXL-JOB是一个轻量级分布式任务调度框架

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

    MySQL Event Scheduler(事件调度器)

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

    操作系统进程调度代码

    当时间片用完后,进程被挂起,转到队列末尾等待下一次调度,这保证了响应时间,适合交互式系统。 关于“操作系统进程调度代码”,在提供的压缩包文件“Dispach”中,可能包含实现上述调度策略的源代码。代码通常会...

    电梯调度JAVA版1

    在这个项目中,可能使用了类和对象来表示电梯、楼层和乘客,通过事件驱动编程(比如监听按钮点击或电梯到达事件)来更新状态并触发调度算法。图形界面可能使用了Java的Swing或JavaFX库,提供交互式视图,显示电梯的...

    quartznet任务调度和消息调度

    - 触发器可以通过`ITrigger.GetNextFireTimeUtc`方法来查询下一次触发任务的时间,便于了解任务执行计划。 3. **持久化支持**: - Quartz.NET支持将任务和触发器的状态持久化到数据库中,这意味着即使应用重启,...

    分布式任务调度平台XXL-JOB.pdf

    分片广播任务功能在执行器集群部署时,可以广播触发集群中的所有执行器执行一次任务,适合进行大数据量业务操作。动态分片功能支持动态扩容执行器集群,从而动态增加分片数量,以提升任务处理能力和速度。 XXL-JOB...

    1-嵌入式物联网项目开发 - 基于任务和事件的OSAL调度器1

    当定时时间到达,OSAL会设置任务的触发标志,使得任务在下一次调度时被执行。这种机制简化了延时任务的实现。 OSAL调度器涉及的主要源文件包括: - `osal.c` 和 `osal.h`:包含了任务注册、调度实现以及任务事件...

    Spring中Quartz调度器的使用

    按任务调度的触发时机,Quartz 也可以分为两种:每隔指定时间则触发一次和每到指定时间则触发一次。前者对应的调度器为 org.springframework.scheduling.quartz.SimpleTriggerBean,后者对应的调度器为 org.spring...

    2.2_5_调度算法:时间片轮转、优先级、多级反馈队列1

    这种抢占是由系统时钟中断触发的,当时间片用尽时,系统会接收到一个时钟中断信号,从而调度下一个进程。 **优点:** 1. 公平性:所有进程都能在较短的时间内得到响应,提高了交互性,特别适合于分时系统。 2. 避免...

Global site tag (gtag.js) - Google Analytics