io.netty.util.concurrent.Future.isCancelled()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(161)

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

Future.isCancelled介绍

暂无

代码示例

代码示例来源:origin: line/armeria

@Override
public boolean isCancelled() {
  return delegate.isCancelled();
}

代码示例来源:origin: lettuce-io/lettuce-core

private static CompletableFuture<Void> toCompletableFuture(Future<?> future) {

    CompletableFuture<Void> promise = new CompletableFuture<>();

    if (future.isDone() || future.isCancelled()) {
      if (future.isSuccess()) {
        promise.complete(null);
      } else {
        promise.completeExceptionally(future.cause());
      }
      return promise;
    }

    future.addListener(f -> {
      if (f.isSuccess()) {
        promise.complete(null);
      } else {
        promise.completeExceptionally(f.cause());
      }
    });

    return promise;
  }
}

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

@Override
  public void operationComplete(Future<T> future) throws Exception {
    if (future.isCancelled()) {
      synchronized (responses) {
        ResponseEntry entry = responses.get(responseQueueName);
        List<Result> list = entry.getResponses().get(requestId);
        if (list == null) {
          return;
        }
        
        for (Iterator<Result> iterator = list.iterator(); iterator.hasNext();) {
          Result result = iterator.next();
          if (result.getPromise() == responseFuture) {
            result.getScheduledFuture().cancel(true);
            iterator.remove();
          }
        }
        if (list.isEmpty()) {
          entry.getResponses().remove(requestId);
        }
        if (entry.getResponses().isEmpty()) {
          responses.remove(responseQueueName, entry);
        }
      }
    }
    
  }
});

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

@Override
  public void operationComplete(Future<T> future) throws Exception {
    if (future.isCancelled()) {
      synchronized (responses) {
        ResponseEntry entry = responses.get(responseQueueName);
        List<Result> list = entry.getResponses().get(requestId);
        if (list == null) {
          return;
        }
        
        for (Iterator<Result> iterator = list.iterator(); iterator.hasNext();) {
          Result result = iterator.next();
          if (result.getPromise() == responseFuture) {
            result.getScheduledFuture().cancel(true);
            iterator.remove();
          }
        }
        if (list.isEmpty()) {
          entry.getResponses().remove(requestId);
        }
        if (entry.getResponses().isEmpty()) {
          responses.remove(responseQueueName, entry);
        }
      }
    }
    
  }
});

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

@Override
  public void operationComplete(F future) throws Exception {
    InternalLogger internalLogger = logNotifyFailure ? logger : null;
    if (future.isSuccess()) {
      V result = future.get();
      for (Promise<? super V> p: promises) {
        PromiseNotificationUtil.trySuccess(p, result, internalLogger);
      }
    } else if (future.isCancelled()) {
      for (Promise<? super V> p: promises) {
        PromiseNotificationUtil.tryCancel(p, internalLogger);
      }
    } else {
      Throwable cause = future.cause();
      for (Promise<? super V> p: promises) {
        PromiseNotificationUtil.tryFailure(p, cause, internalLogger);
      }
    }
  }
}

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

@Override
  public void operationComplete(F future) throws Exception {
    InternalLogger internalLogger = logNotifyFailure ? logger : null;
    if (future.isSuccess()) {
      V result = future.get();
      for (Promise<? super V> p: promises) {
        PromiseNotificationUtil.trySuccess(p, result, internalLogger);
      }
    } else if (future.isCancelled()) {
      for (Promise<? super V> p: promises) {
        PromiseNotificationUtil.tryCancel(p, internalLogger);
      }
    } else {
      Throwable cause = future.cause();
      for (Promise<? super V> p: promises) {
        PromiseNotificationUtil.tryFailure(p, cause, internalLogger);
      }
    }
  }
}

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

public static <X> void cascadeTo(Future<X> completedFuture, Promise<? super X> promise) {
    if (completedFuture.isSuccess()) {
      if (!promise.trySuccess(completedFuture.getNow())) {
        logger.warn("Failed to mark a promise as success because it is done already: {}", promise);
      }
    } else if (completedFuture.isCancelled()) {
      if (!promise.cancel(false)) {
        logger.warn("Failed to cancel a promise because it is done already: {}", promise);
      }
    } else {
      if (!promise.tryFailure(completedFuture.cause())) {
        logger.warn("Failed to mark a promise as failure because it's done already: {}", promise,
              completedFuture.cause());
      }
    }
  }
}

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

@Override
  public void operationComplete(Future<Void> future) throws Exception {
    if (future.isCancelled() && connectionFuture.cancel(false)) {
      log.debug("Connection obtaining canceled for batch");
      details.getTimeout().cancel();
      if (attemptPromise.cancel(false)) {
        free(entry);
      }
    }
  }
};

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

@Override
  public void operationComplete(Future<Void> future) throws Exception {
    if (future.isCancelled() && connectionFuture.cancel(false)) {
      log.debug("Connection obtaining canceled for batch");
      details.getTimeout().cancel();
      if (attemptPromise.cancel(false)) {
        free(entry);
      }
    }
  }
};

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

@Override
  public void operationComplete(Future<R> future) throws Exception {
    if (future.isCancelled() && connectionFuture.cancel(false)) {
      log.debug("Connection obtaining canceled for {}", command);
      details.getTimeout().cancel();
      if (details.getAttemptPromise().cancel(false)) {
        free(params);
      }
    }
  }
};

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

@Override
  public void operationComplete(Future<R> future) throws Exception {
    if (future.isCancelled() && connectionFuture.cancel(false)) {
      log.debug("Connection obtaining canceled for {}", command);
      details.getTimeout().cancel();
      if (details.getAttemptPromise().cancel(false)) {
        free(params);
      }
    }
  }
};

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

public static <X> void cascadeTo(Future<X> completedFuture, Promise<? super X> promise) {
    if (completedFuture.isSuccess()) {
      if (!promise.trySuccess(completedFuture.getNow())) {
        logger.warn("Failed to mark a promise as success because it is done already: {}", promise);
      }
    } else if (completedFuture.isCancelled()) {
      if (!promise.cancel(false)) {
        logger.warn("Failed to cancel a promise because it is done already: {}", promise);
      }
    } else {
      if (!promise.tryFailure(completedFuture.cause())) {
        logger.warn("Failed to mark a promise as failure because it's done already: {}", promise,
              completedFuture.cause());
      }
    }
  }
}

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

queriesInProgress.remove(future);
if (promise.isDone() || future.isCancelled()) {
  queryLifecycleObserver.queryCancelled(allowedQueries);

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

public static <X> void cascadeTo(Future<X> completedFuture, Promise<? super X> promise) {
    if (completedFuture.isSuccess()) {
      if (!promise.trySuccess(completedFuture.getNow())) {
        logger.warn("Failed to mark a promise as success because it is done already: {}", promise);
      }
    } else if (completedFuture.isCancelled()) {
      if (!promise.cancel(false)) {
        logger.warn("Failed to cancel a promise because it is done already: {}", promise);
      }
    } else {
      if (!promise.tryFailure(completedFuture.cause())) {
        logger.warn("Failed to mark a promise as failure because it's done already: {}", promise,
              completedFuture.cause());
      }
    }
  }
}

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

@Override
  public void operationComplete(Future<R> future) throws Exception {
    if (scheduledFuture != null) {
      scheduledFuture.cancel();
    }
    synchronized (listener) {
      connectionManager.getShutdownPromise().removeListener(listener);
    }
    // handling cancel operation for blocking commands
    if (future.isCancelled() && !details.getAttemptPromise().isDone()) {
      log.debug("Canceled blocking operation {} used {}", details.getCommand(), connection);
      connection.forceFastReconnectAsync().addListener(new FutureListener<Void>() {
        @Override
        public void operationComplete(Future<Void> future) throws Exception {
          details.getAttemptPromise().cancel(true);
        }
      });
      return;
    }
    if (future.cause() instanceof RedissonShutdownException) {
      details.getAttemptPromise().tryFailure(future.cause());
    }
  }
});

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

@Override
  public void operationComplete(Future<R> future) throws Exception {
    if (scheduledFuture != null) {
      scheduledFuture.cancel();
    }
    synchronized (listener) {
      connectionManager.getShutdownPromise().removeListener(listener);
    }
    // handling cancel operation for blocking commands
    if (future.isCancelled() && !details.getAttemptPromise().isDone()) {
      log.debug("Canceled blocking operation {} used {}", details.getCommand(), connection);
      connection.forceFastReconnectAsync().addListener(new FutureListener<Void>() {
        @Override
        public void operationComplete(Future<Void> future) throws Exception {
          details.getAttemptPromise().cancel(true);
        }
      });
      return;
    }
    if (future.cause() instanceof RedissonShutdownException) {
      details.getAttemptPromise().tryFailure(future.cause());
    }
  }
});

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

@Override
public void operationComplete(Future<Void> future) throws Exception {
  details.getTimeout().cancel();
  if (future.isCancelled()) {
    return;

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

@Override
public void operationComplete(Future<Void> future) throws Exception {
  details.getTimeout().cancel();
  if (future.isCancelled()) {
    return;

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

@Override
  public void operationComplete(Future<RedisConnection> connFuture) throws Exception {
    if (connFuture.isCancelled()) {
      connectionManager.getShutdownLatch().release();
      return;
    }
    if (!connFuture.isSuccess()) {
      connectionManager.getShutdownLatch().release();
      details.setException(convertException(connectionFuture));
      return;
    }
    if (details.getAttemptPromise().isDone() || details.getMainPromise().isDone()) {
      releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details);
      return;
    }
    final RedisConnection connection = connFuture.getNow();
    sendCommand(details, connection);
    details.getWriteFuture().addListener(new ChannelFutureListener() {
      @Override
      public void operationComplete(ChannelFuture future) throws Exception {
        checkWriteFuture(details, ignoreRedirect, connection);
      }
    });
    releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details);
  }
});

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

@Override
  public void operationComplete(Future<RedisConnection> connFuture) throws Exception {
    if (connFuture.isCancelled()) {
      connectionManager.getShutdownLatch().release();
      return;
    }
    if (!connFuture.isSuccess()) {
      connectionManager.getShutdownLatch().release();
      details.setException(convertException(connectionFuture));
      return;
    }
    if (details.getAttemptPromise().isDone() || details.getMainPromise().isDone()) {
      releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details);
      return;
    }
    final RedisConnection connection = connFuture.getNow();
    sendCommand(details, connection);
    details.getWriteFuture().addListener(new ChannelFutureListener() {
      @Override
      public void operationComplete(ChannelFuture future) throws Exception {
        checkWriteFuture(details, ignoreRedirect, connection);
      }
    });
    releaseConnection(source, connectionFuture, details.isReadOnlyMode(), details.getAttemptPromise(), details);
  }
});

相关文章