rx.Single.doOnError()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.9k)|赞(0)|评价(0)|浏览(103)

本文整理了Java中rx.Single.doOnError()方法的一些代码示例,展示了Single.doOnError()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Single.doOnError()方法的具体详情如下:
包路径:rx.Single
类名称:Single
方法名:doOnError

Single.doOnError介绍

暂无

代码示例

代码示例来源:origin: com.microsoft.azure/azure-cosmosdb-gateway

private AsyncLazy(Single<TValue> single) {
  logger.debug("constructor");
  this.single = single
      .doOnSuccess(v -> this.succeeded = true)
      .doOnError(e -> this.failed = true)
      .cache();
}

代码示例来源:origin: org.amv.vertx/amv-vertx-spring-boot-starter

@Override
  public void destroy() throws Exception {
    Set<String> deploymentIds = vertx.deploymentIDs();
    boolean hasDeployedVerticles = !deploymentIds.isEmpty();
    if (hasDeployedVerticles) {
      CountDownLatch countDownLatch = new CountDownLatch(deploymentIds.size());
      deploymentIds.forEach(id -> vertx.rxUndeploy(id)
          .doOnSuccess(foo -> countDownLatch.countDown())
          .doOnError(e -> {
            log.error("", e);
            countDownLatch.countDown();
          })
          .subscribe());
      countDownLatch.await();
    }
    vertx.close();
  }
}

代码示例来源:origin: com.microsoft.azure/azure-cosmosdb-gateway

static Single<DatabaseAccount> getDatabaseAccountFromAnyLocationsAsync(
    URL defaultEndpoint, List<String> locations, Func1<URL, Single<DatabaseAccount>> getDatabaseAccountFn) {
  return getDatabaseAccountFn.call(defaultEndpoint).onErrorResumeNext(
      e -> {
        logger.error("Fail to reach global gateway [{}], [{}]", defaultEndpoint, e.getMessage());
        if (locations.isEmpty()) {
          return Single.error(e);
        }
        rx.Observable<rx.Observable<DatabaseAccount>> obs = rx.Observable.range(0, locations.size())
            .map(index -> getDatabaseAccountFn.call(LocationHelper.getLocationEndpoint(defaultEndpoint, locations.get(index))).toObservable());
        // iterate and get the database account from the first non failure, otherwise get the last error.
        rx.Observable<DatabaseAccount> res = rx.Observable.concatDelayError(obs).first().single();
        return res.toSingle().doOnError(
            innerE -> {
              logger.error("Fail to reach location any of locations", String.join(",", locations), innerE.getMessage());
            });
      });
}

代码示例来源:origin: hawkular/hawkular-metrics

@Override
public Single<? extends JobDetails> scheduleJob(String type, String name, Map<String, String> parameters,
    Trigger trigger) {
  if (now.get().getMillis() >= trigger.getTriggerTime()) {
    return Single.error(new RuntimeException("Trigger time has already passed"));
  }
  String lockName = QUEUE_LOCK_PREFIX + trigger.getTriggerTime();
  // The lock we obtain here is basically a shared lock. We need a lock to avoid a possible race condition.
  // Without the lock the job could could be written to scheduled_jobs_idx and wind up having the partition to
  // which it was written deleted before the job is ever executed. The job would then never get executed.
  return lockManager.acquireLock(lockName, SCHEDULING_LOCK, SCHEDULING_LOCK_TIMEOUT_IN_SEC, false)
      .map(lock -> {
        if (lock.isLocked()) {
          UUID jobId = UUID.randomUUID();
          return jobsService.createJobDetails(jobId, type, name, parameters, trigger,
              new Date(trigger.getTriggerTime()));
        }
        throw new RuntimeException("Failed to acquire scheduling lock [" + lockName + "]");
      })
      .flatMap(details -> jobsService.insert(new Date(trigger.getTriggerTime()), details)
          .map(resultSet -> details))
      .toSingle()
      .doOnError(t -> logger.warn("Failed to schedule job " + name, t));
}

代码示例来源:origin: hawkular/hawkular-metrics

private Single<JobExecutionState> releaseJobExecutionLock(JobExecutionState state) {
  String jobLock = "org.hawkular.metrics.scheduler.job." + state.currentDetails.getJobId();
  return lockManager.releaseLock(jobLock, hostname)
      .map(released -> {
        if (!released) {
          logger.warnf("Failed to release job lock for %s", state.currentDetails);
        }
        return state;
      })
      .toSingle()
      .doOnError(t -> logger.warnf(t, "There was an error trying to release job lock [%s] for %s", jobLock,
          state.currentDetails));
}

代码示例来源:origin: hawkular/hawkular-metrics

private Single<JobExecutionState> setJobFinished(JobExecutionState state) {
  return session.execute(updateJobToFinished.bind(state.timeSlice,
      state.currentDetails.getJobId()), queryScheduler)
      .toSingle()
      .map(resultSet -> state)
      .doOnError(t -> logger.warnf(t, "There was an error while updated the finished jobs index for %s",
          state.currentDetails));
}

代码示例来源:origin: hawkular/hawkular-metrics

private Completable doPostJobExecutionWithoutRescheduling(Completable job, JobDetailsImpl jobDetails,
    Date timeSlice, Set<UUID> activeJobs) {
  return job
      .toSingle(() -> new JobExecutionState(jobDetails, activeJobs))
      .flatMap(this::releaseJobExecutionLock)
      .flatMap(this::setJobFinished)
      .doOnError(t -> {
        logger.debug("There was an error during post-job execution, but the job has already been " +
            "rescheduled.", t);
        publishJobFinished(jobDetails);
      })
      .doOnSuccess(states -> publishJobFinished(states.currentDetails))
      .toCompletable();
}

代码示例来源:origin: georocket/georocket

" chunks to layer '" + layer + "' after " + duration + " ms");
})
.doOnError(err -> {
 long duration = System.currentTimeMillis() - timestamp;
 log.error("Failed to import [" + correlationId + "] to layer '" +

代码示例来源:origin: meltwater/rxrabbit

private void handleMessage(Exchange outputExchange, RabbitPublisher publisher, Message message) {
  try {
    //change in logback.xml to DEBUG level to see every message payload logged
    log.debugWithParams("Received message.",
        "payload", new String(message.payload),
        "metadata", message.basicProperties);
    publisher.call(
        outputExchange,
        new RoutingKey(message.envelope.getRoutingKey()),
        message.basicProperties,
        new Payload(message.payload)
    )
        .doOnSuccess(ignore -> message.acknowledger.ack())
        .doOnError(throwable -> message.acknowledger.reject())
        .subscribe();
  }catch (Exception e){
    message.acknowledger.reject();
  }
}

代码示例来源:origin: georocket/georocket

.reduce(0, (a, b) -> a + b)
.toSingle()
.doOnError(onFinish::accept)
.doOnSuccess(i -> onFinish.accept(null));

代码示例来源:origin: hawkular/hawkular-metrics

.doOnError(t -> {
  logger.warn("There was an error during post-job execution", t);
  publishJobFinished(jobDetails);

相关文章