我正在使用cron调度程序(石英),由于某些原因(服务器关闭...),有时任务不会触发。我不会检查任务是否运行。我的想法是基于cron进行此操作:我得到以前的开火日期(例如:0 7 11 4 *?=在11:07:00 am,第4天,每个月我应该有2018/07/04),并且我将其与最新任务的日期进行了比较(在db中获取了它):如果不同,则我知道任务没有运行。
我的问题是得到以前的开火日期。
我在此处尝试了以下建议:Finding Last Fired time using a Cron Expression in Java为trigger.getPreviousFireTime();
,但仍然无法正常工作……获取下一次触发时间没有问题,但无法获取先前的触发时间(日期为空或错误的日期)。
有什么想法吗?
答案 0 :(得分:1)
我认为您正在寻找的是syslog。根据您使用的* nix,可以运行:
grep cron (location)
并获取所需的数据。从那里可以随意处理它。
Ubuntu Cron Log Location Linky
我个人将使用这个SO问题来从Java获取此调用的输出:
最后,请使用:
grep cron /var/log/syslog | tail -1
将使您仅获得最后一行。在基于Linux的服务器上,该行如下所示:
Jul 10 12:17:01 ---------- junk removed -------------------
我将采用其中的前15个字符并对其进行解析。