use java8 functional

This commit is contained in:
2021-02-08 17:15:36 +08:00
parent e929cd180f
commit 169bf6f290
20 changed files with 536 additions and 149 deletions

View File

@@ -1,14 +1,11 @@
package io.github.ehlxr.did;
import io.github.ehlxr.did.client.SdkClient;
import io.github.ehlxr.did.common.Result;
import io.github.ehlxr.did.common.SdkProto;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
/**
* @author ehlxr
@@ -20,7 +17,7 @@ public class DidSdkTest {
@Before
public void init() {
// client = new SdkClient("127.0.0.1", 16831, 5000);
client = SdkClient.newBuilder().build();
client = SdkClient.newBuilder().timeoutMillis(5000).build();
client.start();
}
@@ -32,27 +29,26 @@ public class DidSdkTest {
@Test
public void didSdkTest() throws Exception {
// 测试同步请求
for (int i = 0; i < NUM; i++) {
Result<SdkProto> resultProto = client.invokeSync();
System.out.println(resultProto);
}
System.out.println("invokeync test finish");
IntStream.range(0, NUM).parallel().forEach(i -> System.out.println(client.invokeSync()));
// System.out.println("invokeync test finish");
// 测试异步请求
final CountDownLatch countDownLatch = new CountDownLatch(NUM);
for (int i = 0; i < NUM; i++) {
client.invokeAsync(responseFuture -> {
countDownLatch.countDown();
System.out.println(responseFuture.getSdkProto());
});
}
countDownLatch.await(10, TimeUnit.SECONDS);
System.out.println("invokeAsync test finish");
// final CountDownLatch countDownLatch = new CountDownLatch(NUM);
// IntStream.range(0, NUM).forEach(i ->
// Try.of(() -> client.invokeAsync(responseFuture -> {
// System.out.println(responseFuture.getSdkProto());
// countDownLatch.countDown();
// })).trap(Throwable::printStackTrace).run());
//
// //noinspection ResultOfMethodCallIgnored
// countDownLatch.await(10, TimeUnit.SECONDS);
// System.out.println("invokeAsync test finish");
}
@Test
public void testInvoke() {
System.out.println(client.invoke());
// System.out.println(client.invoke());
client.setTimeoutMillis(3000);
System.out.println(client.invoke());