private List<T> fetchReadyEntriesFromIds() {
final int size = config.getMaxEntriesClaimed() < inflightEvents.size() ? config.getMaxEntriesClaimed() : inflightEvents.size();
final List<Long> recordIds = new ArrayList<Long>(size);
for (int i = 0; i < size; i++) {
final Long entryId = inflightEvents.poll();
if (entryId != null) {
totalInflightProcessed.inc();
totalProcessed.inc();
recordIds.add(entryId);
}
}
List<T> result = ImmutableList.<T>of();
if (recordIds.size() > 0) {
if (log.isDebugEnabled()) {
log.debug(DB_QUEUE_LOG_ID + "fetchReadyEntriesFromIds, size = " + size + ", ids = " + Joiner.on(", ").join(recordIds));
}
final List<T> entriesFromIds = getEntriesFromIds(recordIds);
result = ImmutableList.<T>copyOf(Collections2.filter(entriesFromIds, new Predicate<T>() {
@Override
public boolean apply(final T input) {
return (input.getProcessingState() == PersistentQueueEntryLifecycleState.AVAILABLE);
}
}));
}
return result;
}