當前位置: 首頁>>代碼示例>>Java>>正文


Java ManagedChannel.shutdown方法代碼示例

本文整理匯總了Java中io.grpc.ManagedChannel.shutdown方法的典型用法代碼示例。如果您正苦於以下問題:Java ManagedChannel.shutdown方法的具體用法?Java ManagedChannel.shutdown怎麽用?Java ManagedChannel.shutdown使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在io.grpc.ManagedChannel的用法示例。


在下文中一共展示了ManagedChannel.shutdown方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: serverRunsAndRespondsCorrectly

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void serverRunsAndRespondsCorrectly() throws ExecutionException,
        IOException,
        InterruptedException,
        TimeoutException {
    final String name = UUID.randomUUID().toString();

    Server server = ServerBuilder.forPort(9999)
            .addService(new GreeterImpl())
            .build();

    server.start();

    ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", server.getPort())
            .usePlaintext(true)
            .build();

    GreeterGrpc8.GreeterCompletableFutureStub stub = GreeterGrpc8.newCompletableFutureStub(channel);

    CompletableFuture<HelloResponse> response = stub.sayHello(HelloRequest.newBuilder().setName(name).build());

    await().atMost(3, TimeUnit.SECONDS).until(() -> response.isDone() && response.get().getMessage().contains(name));

    channel.shutdown();
    channel.awaitTermination(1, TimeUnit.MINUTES);
    channel.shutdownNow();

    server.shutdown();
    server.awaitTermination(1, TimeUnit.MINUTES);
    server.shutdownNow();
}
 
開發者ID:salesforce,項目名稱:grpc-java-contrib,代碼行數:32,代碼來源:CompletableFutureEndToEndTest.java

示例2: withNewChannel

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
<T extends AbstractStub<T>, R> CompletableFuture<R> withNewChannel(
    String endpoint,
    Function<ManagedChannel, T> stubCustomizer,
    Function<T, CompletableFuture<R>> stubConsumer) {

  final ManagedChannel channel = defaultChannelBuilder()
      .nameResolverFactory(
          forEndpoints(
              Optional.ofNullable(builder.authority()).orElse("etcd"),
              Collections.singleton(endpoint),
              Optional.ofNullable(builder.uriResolverLoader())
                  .orElseGet(URIResolverLoader::defaultLoader)
          )
      ).build();

  try {
    T stub = stubCustomizer.apply(channel);

    return stubConsumer.apply(stub).whenComplete(
        (r, t) -> channel.shutdown()
    );
  } catch (Exception e) {
    channel.shutdown();
    throw EtcdExceptionFactory.toEtcdException(e);
  }
}
 
開發者ID:coreos,項目名稱:jetcd,代碼行數:27,代碼來源:ClientConnectionManager.java

示例3: main

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
public static void main(String[] args) throws InterruptedException {
  ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 8080)
      .usePlaintext(true)
      .build();

  GreetingServiceGrpc.GreetingServiceBlockingStub stub =
      GreetingServiceGrpc.newBlockingStub(channel);

  HelloResponse helloResponse = stub.greeting(
      HelloRequest.newBuilder()
          .setName("Ray")
          .setAge(18)
          .setSentiment(Sentiment.HAPPY)
          .build());

  System.out.println(helloResponse);

  channel.shutdown();
}
 
開發者ID:saturnism,項目名稱:grpc-java-by-example,代碼行數:20,代碼來源:MyGrpcClient.java

示例4: wrongHostNameFailHostnameVerification

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void wrongHostNameFailHostnameVerification() throws Exception {
  ManagedChannel channel = createChannelBuilder()
      .overrideAuthority(GrpcUtil.authorityFromHostAndPort(
          BAD_HOSTNAME, getPort()))
      .build();
  TestServiceGrpc.TestServiceBlockingStub blockingStub =
      TestServiceGrpc.newBlockingStub(channel);

  Throwable actualThrown = null;
  try {
    blockingStub.emptyCall(Empty.getDefaultInstance());
  } catch (Throwable t) {
    actualThrown = t;
  }
  assertNotNull("The rpc should have been failed due to hostname verification", actualThrown);
  Throwable cause = Throwables.getRootCause(actualThrown);
  assertTrue(
      "Failed by unexpected exception: " + cause, cause instanceof SSLPeerUnverifiedException);
  channel.shutdown();
}
 
開發者ID:grpc,項目名稱:grpc-java,代碼行數:22,代碼來源:Http2OkHttpTest.java

示例5: hostnameVerifierWithBadHostname

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void hostnameVerifierWithBadHostname() throws Exception {
  ManagedChannel channel = createChannelBuilder()
      .overrideAuthority(GrpcUtil.authorityFromHostAndPort(
          BAD_HOSTNAME, getPort()))
      .hostnameVerifier(new HostnameVerifier() {
        @Override
        public boolean verify(String hostname, SSLSession session) {
          return true;
        }
      })
      .build();
  TestServiceGrpc.TestServiceBlockingStub blockingStub =
      TestServiceGrpc.newBlockingStub(channel);

  blockingStub.emptyCall(Empty.getDefaultInstance());

  channel.shutdown();
}
 
開發者ID:grpc,項目名稱:grpc-java,代碼行數:20,代碼來源:Http2OkHttpTest.java

示例6: run

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
/**
 * Start the open loop client.
 */
public void run() throws Exception {
  if (config == null) {
    return;
  }
  config.channels = 1;
  config.directExecutor = true;
  ManagedChannel ch = config.newChannel();
  SimpleRequest req = config.newRequest();
  LoadGenerationWorker worker =
      new LoadGenerationWorker(ch, req, config.targetQps, config.duration);
  final long start = System.nanoTime();
  Histogram histogram = worker.call();
  final long end = System.nanoTime();
  printStats(histogram, end - start);
  if (config.histogramFile != null) {
    saveHistogram(histogram, config.histogramFile);
  }
  ch.shutdown();
}
 
開發者ID:grpc,項目名稱:grpc-java,代碼行數:23,代碼來源:OpenLoopClient.java

示例7: oobChannelsNoConnectionShutdown

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void oobChannelsNoConnectionShutdown() {
  createChannel(new FakeNameResolverFactory(true), NO_INTERCEPTOR);
  ManagedChannel oob1 = helper.createOobChannel(addressGroup, "oob1Authority");
  ManagedChannel oob2 = helper.createOobChannel(addressGroup, "oob2Authority");
  channel.shutdown();

  verify(mockLoadBalancer).shutdown();
  oob1.shutdown();
  assertTrue(oob1.isTerminated());
  assertFalse(channel.isTerminated());
  oob2.shutdown();
  assertTrue(oob2.isTerminated());
  assertTrue(channel.isTerminated());
  verify(mockTransportFactory, never()).newClientTransport(any(SocketAddress.class), anyString(),
      anyString(), any(ProxyParameters.class));
}
 
開發者ID:grpc,項目名稱:grpc-java,代碼行數:18,代碼來源:ManagedChannelImplTest.java

示例8: uniqueSessionIdPerChannel

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void uniqueSessionIdPerChannel() throws Exception {
    GreeterGrpc.GreeterImplBase svc = new GreeterGrpc.GreeterImplBase() {
        @Override
        public void sayHello(HelloRequest request, StreamObserver<HelloResponse> responseObserver) {
            responseObserver.onNext(HelloResponse.newBuilder().setMessage(SessionIdServerInterceptor.SESSION_ID.get().toString()).build());
            responseObserver.onCompleted();
        }
    };

    Server server = InProcessServerBuilder.forName("uniqueSessionIdPerChannel")
            .addTransportFilter(new ClientSessionTransportFilter())
            .intercept(new SessionIdServerInterceptor())
            .addService(svc)
            .build()
            .start();

    ManagedChannel channel1 = InProcessChannelBuilder.forName("uniqueSessionIdPerChannel")
            .usePlaintext(true)
            .build();
    GreeterGrpc.GreeterBlockingStub stub1 = GreeterGrpc.newBlockingStub(channel1);

    ManagedChannel channel2 = InProcessChannelBuilder.forName("uniqueSessionIdPerChannel")
            .usePlaintext(true)
            .build();
    GreeterGrpc.GreeterBlockingStub stub2 = GreeterGrpc.newBlockingStub(channel2);

    try {
        String sessionId1 = stub1.sayHello(HelloRequest.getDefaultInstance()).getMessage();
        String sessionId2 = stub2.sayHello(HelloRequest.getDefaultInstance()).getMessage();

        assertThat(sessionId1).isNotEqualTo(sessionId2);
    } finally {
        channel1.shutdown();
        channel2.shutdown();
        server.shutdown();
    }
}
 
開發者ID:salesforce,項目名稱:grpc-java-contrib,代碼行數:39,代碼來源:SessionIdTest.java

示例9: interceptorThrowsIfMissingTransportFilter

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void interceptorThrowsIfMissingTransportFilter() throws Exception {
    GreeterGrpc.GreeterImplBase svc = new GreeterGrpc.GreeterImplBase() {
        @Override
        public void sayHello(HelloRequest request, StreamObserver<HelloResponse> responseObserver) {
            responseObserver.onNext(HelloResponse.newBuilder().setMessage(SessionIdServerInterceptor.SESSION_ID.get().toString()).build());
            responseObserver.onCompleted();
        }
    };

    Server server = InProcessServerBuilder.forName("interceptorThrowsIfMissingTransportFilter")
            .intercept(new SessionIdServerInterceptor())
            .addService(svc)
            .build()
            .start();

    ManagedChannel channel = InProcessChannelBuilder.forName("interceptorThrowsIfMissingTransportFilter")
            .usePlaintext(true)
            .build();
    GreeterGrpc.GreeterBlockingStub stub = GreeterGrpc.newBlockingStub(channel);

    try {
        assertThatThrownBy(() -> stub.sayHello(HelloRequest.getDefaultInstance()).getMessage()).isInstanceOf(StatusRuntimeException.class);

    } finally {
        channel.shutdown();
        server.shutdown();
    }
}
 
開發者ID:salesforce,項目名稱:grpc-java-contrib,代碼行數:30,代碼來源:SessionIdTest.java

示例10: perSessionShouldFailMissingTransportFilter

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void perSessionShouldFailMissingTransportFilter() throws Exception {
    class TestService extends GreeterGrpc.GreeterImplBase {
        @Override
        public void sayHello(HelloRequest request, StreamObserver<HelloResponse> responseObserver) {
            responseObserver.onNext(HelloResponse.newBuilder().setMessage(Integer.toString(System.identityHashCode(this))).build());
            responseObserver.onCompleted();
        }
    }

    ClientSessionTransportFilter tf = new ClientSessionTransportFilter();
    Server server = InProcessServerBuilder.forName("perSessionShouldInstantiateOneInstancePerSession")
            .addService(new PerSessionService<>(() -> new TestService(), tf))
            .build()
            .start();

    ManagedChannel channel = InProcessChannelBuilder.forName("perSessionShouldInstantiateOneInstancePerSession")
            .usePlaintext(true)
            .build();
    GreeterGrpc.GreeterBlockingStub stub = GreeterGrpc.newBlockingStub(channel);

    try {
        assertThatThrownBy(() -> stub.sayHello(HelloRequest.getDefaultInstance()).getMessage()).isInstanceOf(StatusRuntimeException.class);
    } finally {
        channel.shutdown();
        server.shutdown();
    }
}
 
開發者ID:salesforce,項目名稱:grpc-java-contrib,代碼行數:29,代碼來源:PerSessionServiceTest.java

示例11: close

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
synchronized void close() {
  ManagedChannel channel = channelRef.get();
  if (channel != null) {
    channel.shutdown();
  }

  executorService.shutdownNow();
}
 
開發者ID:coreos,項目名稱:jetcd,代碼行數:9,代碼來源:ClientConnectionManager.java

示例12: shutdownChannel

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
/**
 * Shuts down the given channel if not <code>null</code>, waiting for up to 1 second.
 *
 * @param channel the channel to shut down
 */
public static void shutdownChannel(final ManagedChannel channel) {
    if (channel != null) {
        channel.shutdown();
        try {
            channel.awaitTermination(1, TimeUnit.SECONDS);
        } catch (final InterruptedException e) {
            // silently swallow exception
        }
    }
}
 
開發者ID:msteinhoff,項目名稱:dropwizard-grpc,代碼行數:16,代碼來源:Utils.java

示例13: clearChannels

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
private void clearChannels(String client)
{
	Map<String,ManagedChannel> currentChannels = channels.put(client, new ConcurrentHashMap<String,ManagedChannel>());
	if (currentChannels != null)
		for (ManagedChannel ch : currentChannels.values())
		{
			ch.shutdown();
		}	
}
 
開發者ID:SeldonIO,項目名稱:seldon-server,代碼行數:10,代碼來源:SimpleRpcChannelHandlerImpl.java

示例14: hostnameVerifierWithCorrectHostname

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
@Test
public void hostnameVerifierWithCorrectHostname() throws Exception {
  ManagedChannel channel = createChannelBuilder()
      .overrideAuthority(GrpcUtil.authorityFromHostAndPort(
          TestUtils.TEST_SERVER_HOST, getPort()))
      .hostnameVerifier(new HostnameVerifier() {
        @Override
        public boolean verify(String hostname, SSLSession session) {
          return false;
        }
      })
      .build();
  TestServiceGrpc.TestServiceBlockingStub blockingStub =
      TestServiceGrpc.newBlockingStub(channel);

  Throwable actualThrown = null;
  try {
    blockingStub.emptyCall(Empty.getDefaultInstance());
  } catch (Throwable t) {
    actualThrown = t;
  }
  assertNotNull("The rpc should have been failed due to hostname verification", actualThrown);
  Throwable cause = Throwables.getRootCause(actualThrown);
  assertTrue(
      "Failed by unexpected exception: " + cause, cause instanceof SSLPeerUnverifiedException);
  channel.shutdown();
}
 
開發者ID:grpc,項目名稱:grpc-java,代碼行數:28,代碼來源:Http2OkHttpTest.java

示例15: main

import io.grpc.ManagedChannel; //導入方法依賴的package包/類
public static void main(String[] args) throws Exception {
    // Connect to the sever
    ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", PORT).usePlaintext(true).build();
    ReactorChatGrpc.ReactorChatStub stub = ReactorChatGrpc.newReactorStub(channel);

    CountDownLatch done = new CountDownLatch(1);
    ConsoleReader console = new ConsoleReader();

    // Prompt the user for their name
    console.println("Press ctrl+D to quit");
    String author = console.readLine("Who are you? > ");
    stub.postMessage(toMessage(author, author + " joined.")).subscribe();

    // Subscribe to incoming messages
    Disposable chatSubscription = stub.getMessages(Mono.just(Empty.getDefaultInstance())).subscribe(
        message -> {
            // Don't re-print our own messages
            if (!message.getAuthor().equals(author)) {
                printLine(console, message.getAuthor(), message.getMessage());
            }
        },
        throwable -> {
            printLine(console, "ERROR", throwable.getMessage());
            done.countDown();
        },
        done::countDown
    );

    // Publish outgoing messages
    Flux.fromIterable(new ConsoleIterator(console, author + " > "))
        .map(msg -> toMessage(author, msg))
        .flatMap(stub::postMessage)
        .subscribe(
            empty -> { },
            throwable -> {
                printLine(console, "ERROR", throwable.getMessage());
                done.countDown();
            },
            done::countDown
        );

    // Wait for a signal to exit, then clean up
    done.await();
    stub.postMessage(toMessage(author, author + " left.")).subscribe();
    chatSubscription.dispose();
    channel.shutdown();
    channel.awaitTermination(1, TimeUnit.SECONDS);
    console.getTerminal().restore();
}
 
開發者ID:salesforce,項目名稱:reactive-grpc,代碼行數:50,代碼來源:ReactorChatClient.java


注:本文中的io.grpc.ManagedChannel.shutdown方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。