是否存在一个java调度器API,可以回答“如果给定此日期/时间运行此作业”

是否存在一个java调度器API,可以回答“如果给定此日期/时间运行此作业”,java,quartz-scheduler,scheduler,Java,Quartz Scheduler,Scheduler,对不起,这个标题太难懂了。但基本上我们想做的是在我们的应用程序中实现一个简单的调度机制,但我们不需要/不希望调度器按计划实际执行作业/任务。我们只想询问调度器,给定一个日期/时间实例,是否应该运行作业/任务 因此,理想情况下,我们可以做如下工作: // assume cron-style notation: every hour on the :30 minute mark Schedule s = new Schedule("30 * * * *"); Calendar c = new Gr

对不起,这个标题太难懂了。但基本上我们想做的是在我们的应用程序中实现一个简单的调度机制,但我们不需要/不希望调度器按计划实际执行作业/任务。我们只想询问调度器,给定一个日期/时间实例,是否应该运行作业/任务

因此,理想情况下,我们可以做如下工作:

// assume cron-style notation: every hour on the :30 minute mark
Schedule s = new Schedule("30 * * * *"); 
Calendar c = new GregorianCalendar(2015, 1, 18, 0, 30); // 12:30 AM
boolean shouldRun = s.shouldRun(c); // true 
c = new GregorianCalendar(2015, 1, 18, 0, 45); // 12:45 AM
shouldRun = s.shouldRun(c); // false
我看到Quartz有一个JobExecutionContext,您可以调用getNextFireTime,这可以满足我们的需求。但据我所知,我们仍然需要仔细研究工作的定义,然后实际安排它,这对于我们的目的来说都是不必要的


希望这个问题有意义。提前感谢

这看起来像是XY问题。为什么你想知道一个作业是否应该在没有实际运行作业的情况下运行?@fge因为我们的应用程序的工作方式,我们已经控制了在给定时间间隔内唤醒的进程来执行。。。由于各种原因,将其置于调度程序的控制之下是不可行的。现在我们要抛出一个其他任务的列表,每个任务都有自己的时间表。因此,当流程激活时,它应该遍历任务列表,并决定是否在此运行期间执行这些任务。如果在计划时间后几毫秒内询问问题,会发生什么情况?@andythonas如果仍然在正确的分钟内,它应该返回true。我相信这就是cron在*nix中的工作原理。一毫秒可以改变分钟值。是否希望作业在计划的时间之后恰好运行一次?您是否考虑过使用Quartz之类的调度器不启动作业,而是将它们添加到一个列表中,该列表可以被唤醒给定时间间隔的现有代码清空?