当有多个石英线程时,石英只在一个线程中执行作业

Joh*_*ohn 8 java quartz-scheduler

我想知道是否可以配置quartz来执行在任何给定时间仅在一个线程中运行的长处理作业.换句话说,我说石英配置了一个大小为5的SimpleThreadPool.我的工作每10秒触发一次,但在某些情况下可能需要10秒以上才能完成.有没有办法配置石英触发器/作业/调度程序,以便此触发器不会再次触发,因为它已在另一个线程中处于运行状态.当触发器再次触发时,池中的另一个线程将拾取它并同时运行同一作业的两个实例.感谢您的输入.

澄清:(关于使用大小为1的线程池的建议).要求是使用5个线程配置线程池,并且在任何给定时间只能在单个线程中执行任何单个作业,换句话说,作业的实例应该只由一个线程执行.

jho*_*use 23

如果您正在使用Quartz 1.x,请使用Job类StatefulJob.如果您正在使用Quartz 2.x,那么将@DisallowConcurrentExecution注释添加到作业类.