gRPC Java流服务器拦截器

时间:2020-04-27 02:44:53

标签: java grpc

有没有一种方法可以拦截双向流gRPC服务中的每条消息,我想记录接收每条消息的时间。对于不被调用的连续消息,ServerInterceptor的“ interceptCall”仅在第一条消息上被调用。

public class TimigInterceptor implements ServerInterceptor {
    public static final Context.Key<Long> START_TIME = Context.key("startTime");

    @Override
    public <ReqT, RespT> Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers,
            ServerCallHandler<ReqT, RespT> next) {

        Context ctx = Context.current().withValue(START_TIME, System.currentTimeMillis());
        return Contexts.interceptCall(ctx, call, headers, next);
    }

}

0 个答案:

没有答案