我正在使用Spring 4.2.x
和Quartz 2.1
。
我的要求是,我需要以特定间隔(例如每30秒)轮询database
并一次拉出5条记录并安排它们进行处理。在任何给定的时间点,只应提交5个进行处理。
例如,如果提交了5个,其中一个已完成,那么我需要再提取一个并提交它,以便不断处理其中的5个。
我可以编写一个cron触发器并轮询database
并一次拉出5条记录并将其作为Job
提交以进行处理。但如果没有处理第一批5(即仍在处理中),那么我不应再提交。我必须等到其中至少有一个完成,然后提交x个工作以满足5个限制。
方法是什么?我是否需要在spring/quartz
内使用countdownlatch或其他可以处理此方案的内容?
Quartz线程计数(org.quartz.threadPool.threadCount
)在这里有帮助吗?