使用 Quartz 或任何其他 Java API 进行动态作业调度



>我有一个UI界面,用户可以在其中定义作业名称,间隔,活动/非活动等。

我们如何用Quartz Scheduler或任何java/Spring api来实现这一点?

例如,假设任何石英作业已启动并且间隔设置为 10 分钟,因此在理想情况下,作业将在接下来的 10 分钟间隔内运行。但是每次作业运行时,我们都希望从数据库中获取最新的间隔并对其进行调度。

10:00 作业运行,并在数据库中的间隔设置为 10 分钟 10:10 作业运行,数据库间隔设置为 20 分钟

所以下次作业应该在 10:30 运行

如果使用 Quartz,则可以实现自定义触发器。您的实现将查找数据库中的值,并在下次运行时返回getFireTimeAfter.

另一种选择是使用 Spring 调度 API 并实现触发器接口。同样在这里,nextExecutionTime方法将决定下一次运行的时间。

使用自定义实现的优点是可以完全控制触发逻辑(就像在你的情况下一样,在数据库中执行查找并动态设置下一个运行时(。

最新更新