处理 Quartz 作业异常,使其运行下一个正常回合,而不会立即重新触发或丢弃

Sam*_*Sam 6 java quartz-scheduler

如何处理由 Quartz 调度程序运行的作业引起的“异常”,以便它在以下预定时间运行。我不希望它立即重新启动,或者我不希望它放弃这项工作。只需将其保留在工作商店中,直到下一轮。

Tom*_*icz 5

如果你把从一个例外Job,这是不是JobExecutionExceptionrefireImmediately设置,该执行将被丢弃,并与正常的作息时间进行。例如,当一个作业假设每 10 秒运行一次并且单次执行抛出异常时,Quartz 将简单地丢弃这个执行并在 10 秒后运行下一个。

不幸的是,重新启动一些延迟的唯一方法是自定义代码(可能是JobListener实现?),refireImmediately它说的是什么。遗憾的是 Quartz 不支持开箱即用。

在此处查看建议的解决方案(但不是已接受的答案):Quartz retry when failure