java - quartz 调度程序,知道作业何时完成

标签 java quartz-scheduler

我的情况依赖于知道工作何时完成。

基本上,单例经理会跟踪一堆工作和他们的日程安排。假设 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/

相关文章:

java - 启动 Quartz Scheduler 而不触发触发器

java - 如何知道 Pentaho Scheduler 的下一次运行时间?

java - 如何跳过 Spring Quartz Scheduler 中的特定作业执行

Java PriorityQueue : how to heapify a Collection with a custom Comparator?

java - 使用 ListIterator 将 ArrayList 中的字母大写

java - 使用公制方程计算 BMI,如何在 Java 中使用 GUI 转换英制测量值

java - Java 的paintComponent 中没有显示任何内容。我该如何解决?

java - 两个对象之间共享模型

java - Spring:如何从 Controller 监控 Quartz Job?

Golang Robfig cron AddFunc 不会动态运行作业