我的情况依赖于知道工作何时完成。
基本上,单例经理会跟踪一堆工作和他们的日程安排。假设 B 跟随 A,当 A 执行调度程序时,删除 B 的作业并重新安排它在时间上更接近 A。
我遇到的问题是工作完成后通知经理
public class Action extends ScheduledEvent implements Job {
public Action() {
}
protected Action(String name, MomentInTime momentInTime, FireEventFrequency repeatFrequency) throws SchedulerException {
super(momentInTime, repeatFrequency);
}
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// Do some work
EventScheduleManager.getInstance().eventComplete(this);
}
}
我意识到为什么会发生这种情况是由于反射,并且在调度时 this
被重新初始化并且现在被经理知道了。
有办法解决吗?您将如何通知管理实体其安排的工作已完成?
最佳答案
我最终将职位名称传回给经理
EventScheduleManager.getInstance().eventComplete
(jobExecutionContext.getJobDetail().getName());
并且经理自己维护了 Map<String,ScheduledEvent>
从那里拿走
关于java - quartz 调度程序,知道作业何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352595/