public Completable refreshLocationAsync(DatabaseAccount databaseAccount) { return Completable.defer(() -> { logger.debug("refreshLocationAsync() invoked"); if (!isRefreshing.compareAndSet(false, true)) { logger.debug("in the middle of another refresh. Not invoking a new refresh."); return Completable.complete(); } logger.debug("will refresh"); return this.refreshLocationPrivateAsync(databaseAccount).doOnError(e -> this.isRefreshing.set(false)); }); }
/** * Add a chunk to the store. Retry operation several times before failing. * @param chunk the chunk to add * @param meta the chunk's metadata * @param layer the layer the chunk should be added to (may be null) * @param indexMeta metadata specifying how the chunk should be indexed * @return a Completable that will complete when the operation has finished */ protected Completable addToStore(String chunk, ChunkMeta meta, String layer, IndexMeta indexMeta) { return Completable.defer(() -> store.rxAdd(chunk, meta, layer, indexMeta)) .retryWhen(RxUtils.makeRetry(MAX_RETRIES, RETRY_INTERVAL, log)); } }
@Override public Completable merge(ChunkReadStream chunk, ChunkMeta meta, WriteStream<Buffer> out) { return ensureMerger(meta) .andThen(Completable.defer(() -> { if (meta instanceof XMLChunkMeta) { return xmlMerger.merge(chunk, (XMLChunkMeta)meta, out); } return geoJsonMerger.merge(chunk, (GeoJsonChunkMeta)meta, out); })); }
@Override public Completable init(ChunkMeta meta) { return ensureMerger(meta) .andThen(Completable.defer(() -> { if (meta instanceof XMLChunkMeta) { return xmlMerger.init((XMLChunkMeta)meta); } return geoJsonMerger.init((GeoJsonChunkMeta)meta); })); }
/** * Deploys all verticles from GeoRocket extensions (registered through Java * Service Provider Interface) * @return a completable that completes when all verticles have been deployed */ protected Completable deployExtensionVerticles() { return Completable.defer(() -> { DeploymentOptions options = new DeploymentOptions().setConfig(config()); return Observable.from(FilteredServiceLoader.load(ExtensionVerticle.class)) .flatMap(verticle -> { ObservableFuture<String> observable = RxHelper.observableFuture(); vertx.deployVerticle(verticle, options, observable.toHandler()); return observable; }) .toCompletable(); }); }
@Override public Completable invokeAfterPostRunAsync(final boolean isGroupFaulted) { if (actualTaskItem.isHot()) { return Completable.defer(new Func0<Completable>() { @Override public Completable call() { return actualTaskItem.invokeAfterPostRunAsync(isGroupFaulted) .subscribeOn(Schedulers.immediate()); } }); } else { return this.actualTaskItem.invokeAfterPostRunAsync(isGroupFaulted) .subscribeOn(Schedulers.immediate()); } } }
@Override public Completable invokeAfterPostRunAsync(final boolean isGroupFaulted) { if (actualTaskItem.isHot()) { return Completable.defer(new Func0<Completable>() { @Override public Completable call() { return actualTaskItem.invokeAfterPostRunAsync(isGroupFaulted) .subscribeOn(Schedulers.immediate()); } }); } else { return this.actualTaskItem.invokeAfterPostRunAsync(isGroupFaulted) .subscribeOn(Schedulers.immediate()); } } }
@Override public Completable invokeAfterPostRunAsync(final boolean isGroupFaulted) { if (actualTaskItem.isHot()) { return Completable.defer(new Func0<Completable>() { @Override public Completable call() { return actualTaskItem.invokeAfterPostRunAsync(isGroupFaulted) .subscribeOn(Schedulers.immediate()); } }); } else { return this.actualTaskItem.invokeAfterPostRunAsync(isGroupFaulted) .subscribeOn(Schedulers.immediate()); } } }
private Completable refreshLocationPrivateAsync(DatabaseAccount databaseAccount) { return Completable.defer(() -> { logger.debug("refreshLocationPrivateAsync() refreshing locations");
@Override public void start(Future<Void> startFuture) { // load and copy all indexer factories now and not lazily to avoid // concurrent modifications to the service loader's internal cache indexerFactories = ImmutableList.copyOf(FilteredServiceLoader.load(IndexerFactory.class)); queryCompiler = createQueryCompiler(); queryCompiler.setQueryCompilers(indexerFactories); new ElasticsearchClientFactory(vertx).createElasticsearchClient(INDEX_NAME) .doOnSuccess(es -> { client = es; }) .flatMapCompletable(v -> client.ensureIndex()) .andThen(Completable.defer(() -> ensureMapping())) .subscribe(() -> { registerMessageConsumers(); startFuture.complete(); }, startFuture::fail); }
}) .flatMapCompletable(v -> client.ensureIndex()) .andThen(Completable.defer(this::ensureMapping)) .subscribe(() -> { registerMessageConsumers();
c.andThen(Completable.defer(() -> doMerge(merger, prepareCursor(context, false), response, isTrailerAccepted))) .subscribe(response::end, err -> {