ArrayBlockingQueue<E> queue = new ArrayBlockingQueue<E>(maxStoreSize);
取出
间隔取出 - 用于批处理
取出
queue.take();间隔取出 - 用于批处理
queue.poll(timeout, unit);for (int i = 0; i < bulkSize - 1; i++) {
try {
b = q.poll(pollInterval, TimeUnit.MILLISECONDS);
logger.info("Bulk process task get a filebean from the queue.");
if (b != null) {
result.add(b);
} else {
logger.debug("BulkProcessTask can't get FB within "
+ pollInterval);
break;
}
} catch (Exception e) {
logger.error(e);
break;
}
}
本文介绍了一种使用ArrayBlockingQueue实现批量处理任务队列的方法。通过take()方法获取队列中的元素,并利用poll(timeout,unit)方法在指定时间内尝试获取元素进行批处理。若在规定时间内未获取到元素,则继续处理已有的数据。
764

被折叠的 条评论
为什么被折叠?



