修改:rpc 方法

This commit is contained in:
lxy 2021-08-29 19:44:04 +08:00
parent 074e5a0685
commit 5201cb6088

View File

@ -8,7 +8,10 @@ import org.redkale.service.Service;
import org.redkale.util.*; import org.redkale.util.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.*; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.Socket; import java.net.Socket;
import java.net.SocketException; import java.net.SocketException;
@ -128,7 +131,6 @@ public class ZHubClient extends AbstractConsumer implements IConsumer, IProducer
} while (clen > 0 && clen > strLength(value)); } while (clen > 0 && clen > strLength(value));
// lock msg // lock msg
if ("lock".equals(topic)) { if ("lock".equals(topic)) {
Lock lock = lockTag.get(value); Lock lock = lockTag.get(value);
@ -498,13 +500,12 @@ public class ZHubClient extends AbstractConsumer implements IConsumer, IProducer
private static Map<String, TypeToken> rpcRetType = new ConcurrentHashMap<>(); private static Map<String, TypeToken> rpcRetType = new ConcurrentHashMap<>();
@Comment("rpc call") @Comment("rpc call")
public CompletableFuture<RpcResult<Void>> rpc(String topic, Object v) { public RpcResult<Void> rpc(String topic, Object v) {
return rpc(topic, v, null); return rpc(topic, v, null);
} }
@Comment("rpc call") @Comment("rpc call")
public <T, R> CompletableFuture<RpcResult<R>> rpc(String topic, T v, TypeToken<R> typeToken) { public <T, R> RpcResult<R> rpc(String topic, T v, TypeToken<R> typeToken) {
return CompletableFuture.supplyAsync(() -> {
Rpc rpc = new Rpc<>(APP_NAME, Utility.uuid(), topic, v); Rpc rpc = new Rpc<>(APP_NAME, Utility.uuid(), topic, v);
String ruk = rpc.getRuk(); String ruk = rpc.getRuk();
rpcMap.put(ruk, rpc); rpcMap.put(ruk, rpc);
@ -522,7 +523,14 @@ public class ZHubClient extends AbstractConsumer implements IConsumer, IProducer
// todo: 设置请求失败 // todo: 设置请求失败
} }
return rpc.getRpcResult(); return rpc.getRpcResult();
}); }
public <T, R> CompletableFuture<RpcResult<R>> rpcAsync(String topic, T v) {
return CompletableFuture.supplyAsync(() -> rpc(topic, v, null));
}
public <T, R> CompletableFuture<RpcResult<R>> rpcAsync(String topic, T v, TypeToken<R> typeToken) {
return CompletableFuture.supplyAsync(() -> rpc(topic, v, typeToken));
} }
// RpcResult: {ruk:xxx-xxxx, retcode:0} // RpcResult: {ruk:xxx-xxxx, retcode:0}