Timer 如何从ScheduleExpression查找下一个执行时间(需要帮助)

Timer 如何从ScheduleExpression查找下一个执行时间(需要帮助),timer,ejb,java-ee-6,cronexpression,timer-jobs,Timer,Ejb,Java Ee 6,Cronexpression,Timer Jobs,我正在编写一个JEE JAX-RS应用程序,并且在数据库中配置了ScheduleExpressions作为cron表达式(*1***)。 在我的post构造中,我正在创建计时器服务来定期运行作业 现在,我想公开一个RESTURI,以列出计划今天运行的所有计时器计划作业 目前,我正在使用以下方法查找下一个日程安排时间。 代码: EJBCronTrigger触发器=新的EJBCronTrigger(scheduleExpression); Date fireTimeAfter=trigger.get

我正在编写一个JEE JAX-RS应用程序,并且在数据库中配置了ScheduleExpressions作为cron表达式(*1***)。 在我的post构造中,我正在创建计时器服务来定期运行作业

现在,我想公开一个RESTURI,以列出计划今天运行的所有计时器计划作业

目前,我正在使用以下方法查找下一个日程安排时间。 代码: EJBCronTrigger触发器=新的EJBCronTrigger(scheduleExpression); Date fireTimeAfter=trigger.getFireTimeAfter(新日期())

任何人都可以从ScheduleExpression中提出其他更好或推荐的方法来查找下一个计划时间。是否存在任何类型的库。

公共字符串checkTimerStatus(){
public String checkTimerStatus() {
            Timer timer = null;
            Collection<Timer> timers = service.getTimers();
            Iterator<Timer> iterator = timers.iterator();
            while (iterator.hasNext()) {
                timer = iterator.next();
                return ("Timer will expire after " +
                        timer.getTimeRemaining() + " milliseconds.");
            }
            return ("No timer found");
        }
计时器=空; 收集计时器=service.getTimers(); 迭代器迭代器=timers.Iterator(); while(iterator.hasNext()){ timer=iterator.next(); return(“计时器将在之后过期”+ timer.getTimeRemaining()+“毫秒”); } 返回(“未找到计时器”); }
如果您正在调用
TimerService.createTimer
,是否可以使用
Timer.getNextTimeout
?是的,我可以,但我想将其公开为rest资源,在其中可以找到在给定日期运行的计划作业。谢谢您的回答。我找到了使用Spring的另一种方法,请检查Spring框架中的CronSequenceGenerator。它提供了一个方法next(Date)。要构造CronSequenceGenerator对象,必须传递Crontab表达式。