a-s*_*sak 8 java scheduling quartz-scheduler crontrigger
Java中有没有办法从Cron Expression中找到"Last Fired Time".
例如,如果现在= 2010年4月25日晚上10点,cron表达"0 15 10?**"(石英)应该会回复我25-Apr-2010 10:15 am
注意:1)我不关心我们是否使用标准cron表达式(如Unix和Quartz)或不那么受欢迎的表达式,如果他们可以获取正确的"最后发射时间"2)它也不是字面上的"最后一次发射时间"作为触发器可能没有触发,但逻辑上应该有一种方法可以告诉它(最终会)触发的时间.
cron-utils是一个开源 Java 库,用于解析、验证、迁移支持您所需操作的cron。要在给定时间之前从 cron 获取上一个日期,只需:
//Get date for last execution
DateTime now = DateTime.now();
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("* * * * * * *"));
DateTime lastExecution = executionTime.lastExecution(now));
Run Code Online (Sandbox Code Playgroud)
请记住,在当前状态下,它有一些问题,可能无法正确计算更复杂的 cron 表达式。
首先,我不知道现有的库支持此功能。Quartz 可能会,但标准 Java 类库肯定不会。
其次,严格来说,你原来要求的东西是不可能的。库可以告诉您的最好信息是 cron 表达式将会或应该已触发。唯一可以(理论上)告诉您 cron 表达式最后一次实际触发的时间的是调度程序实例本身。
归档时间: |
|
查看次数: |
12156 次 |
最近记录: |