Quartz .NET - 如果所有未来的触发时间都过去了,则删除触发器

Quartz .NET - remove trigger if all future fire times in past

我已经设置了 quartz 调度程序来忽略失火并继续下一次点火时间(使用 .WithMisfireHandlingInstructionNextWithRemainingCount().WithMisfireHandlingInstructionDoNothing() )。这工作正常,但如果没有下一次触发时间,触发器将只保留已经失败的旧的下一次触发时间并等待它触发(它永远不会触发,因为它已经过去了)。

我测试的方法是暂停触发器并等待触发时间到 pass/misfire。触发器的状态仅在恢复后更新为 COMPLETE 并保留在数据库中。我希望触发器从数据库中删除自身(就像它通常在完成时所做的那样)。我还希望触发器能够在我不必恢复触发器的情况下完成,但这是一个奖励。

所以问题是我将开始时间(使用 .StartAt() 方法)设置为我使用的间隔的开始时间。例如,假设现在是 6 月 23 日上午 9 点。如果我有一个每天从凌晨 3 点开始运行的触发器,那么每日间隔的开始时间是凌晨 3 点。但是,我还将触发器的开始时间设置为过去的凌晨 3 点。这最终给我带来了很多问题。