作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的原型(prototype)文件,用于创建我的 java 类
syntax = "proto3";
option java_package = "some.project.grpc";
option java_multiple_files = true;
message PingRequest { }
message PingResponse { }
service MyServer {
rpc Ping(PingRequest) returns (PingResponse);
}
使用 gradle 和 google protobuf 插件 ( https://github.com/google/protobuf-gradle-plugin ) 我创建了我的类
gradle generateProto
生成的 MyServerGrpc
有一个内部类 MyServerBlockingStub
,它有两个构造函数:
private MyServerBlockingStub(io.grpc.Channel channel) { ... }
private MyServerBlockingStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { ... }
MyServerGrpc
类确实将第一个公开为 newBlockingStub(io.grpc.Channel channel)
但不是我需要的第二个。
像这样,我无法设置任何调用选项,例如超时。我可以轻松地操作生成的文件以允许我访问我需要的构造函数,但这些更改会在下一代中丢失 - 所以这不是一个真正的选择。
因为这看起来很容易解决,所以我在想:
CallOptions
对象?最佳答案
MyServerGrpc
扩展 AbstractStub
。 AbstractStub
具有与 CallOptions
相同的 with*
方法。
所以你想做这样的事情:
newBlockingStub(yourChannel).withDeadlineAfter(1, TimeUnit.MINUTES)
关于java - gRPC protobuffers Java 无法为 BlockingStub 设置 CallOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33807866/
我有一个简单的原型(prototype)文件,用于创建我的 java 类 syntax = "proto3"; option java_package = "some.project.grpc"; o
我是一名优秀的程序员,十分优秀!