@Nonnull @Override public List<Execution> retrieveOrchestrationsForApplication(@Nonnull String application, @Nonnull ExecutionCriteria criteria, @Nullable ExecutionComparator sorter) { List<Execution> executions = retrieveOrchestrationsForApplication(application, criteria) .filter((orchestration) -> { if (criteria.getStartTimeCutoff() != null) { long startTime = Optional.ofNullable(orchestration.getStartTime()).orElse(0L); return startTime == 0 || (startTime > criteria.getStartTimeCutoff().toEpochMilli()); } return true; }) .subscribeOn(Schedulers.io()) .toList() .toBlocking() .single(); if (sorter != null) { executions.sort(sorter); } return executions.subList(0, Math.min(executions.size(), criteria.getPageSize())); }
@Override public @Nonnull Observable<Execution> retrieve( @Nonnull ExecutionType type, @Nonnull ExecutionCriteria criteria ) { List<Observable<Execution>> observables = allRedisDelegates() .stream() .map(d -> { Observable<Execution> observable = all(type, d); if (!criteria.getStatuses().isEmpty()) { observable = observable.filter(execution -> criteria.getStatuses().contains(execution.getStatus())); } if (criteria.getPageSize() > 0) { observable = observable.limit(criteria.getPageSize()); } return observable; } ) .collect(Collectors.toList()); return Observable.merge(observables); }
return unfiltered.subList(0, Math.min(criteria.getPageSize(), unfiltered.size())); })); currentOrchestrationIds = currentOrchestrationIds.subList(0, Math.min(criteria.getPageSize(), currentOrchestrationIds.size())); previousOrchestrationIds = previousOrchestrationIds.subList(0, Math.min(criteria.getPageSize(), previousOrchestrationIds.size()));
!criteria.getStatuses().isEmpty() ? pipelineIds : redisClientDelegate.withCommandsClient(p -> { return p.zrevrange(key, 0, (criteria.getPageSize() - 1)); currentPipelineIds = currentPipelineIds.subList(0, Math.min(criteria.getPageSize(), currentPipelineIds.size())); previousPipelineIds = previousPipelineIds.subList(0, Math.min(criteria.getPageSize(), previousPipelineIds.size()));