如何设置为QUARTZ JOB仅在另一个JOB完成时启动,停止?

我有一个QUARTZ JOB,每10分钟启动一次。

如果JOB未在10分钟内完成,则在接下来的第10分钟,另一个JOB将启动。

我想要的是:如果前一个JOB运行完毕,下一个JOB(每10分钟后)应该只启动。 有什么办法吗?

Quartz文档

@DisallowConcurrentExecution是一个可以添加到Job类的注释,它告诉Quartz不要同时执行给定作业定义的多个实例(指向给定的作业类)。 注意那里的措辞,因为它是非常谨慎地选择的。 在上一节的示例中,如果“SalesReportJob”具有此批注,则只能在给定时间执行“SalesReportForJoe”的一个实例,但它可以与“SalesReportForMike”实例同时执行。 约束基于实例定义(JobDetail),而不是基于作业类的实例。 然而,决定(在Quartz的设计期间)在类本身上进行注释,因为它通常会对类的编码方式产生影响。

如果您不希望SalesReportForMike和SalesReportForJoe同时运行,那么您可以将调度程序的ThreadPool大小设置为1.因此在任何给定时间只运行一个作业。

另请参阅StatefulJob

查看DisallowConcurrentExecution批注,它将阻止同一作业的多个实例同时运行。