新增 RPC 与 task action
SS RPC(服务间)
- 在 proto 中给已有 service(或新 service)添加方法:
service MyService {
option (atframework.service_options) = {module_name: "my_module"};
rpc my_method(MyMethodReq) returns (MyMethodRsp) {
option (atframework.rpc_options) = {api_name: "my_method" allow_no_wait: false};
}
}
- 重新构建:protoc + mako-generator 自动产出:
- 服务端 task action 骨架
task_action_my_method.{h,cpp}(已存在的手写部分保留在标记区间内); - handler 注册
handle_ss_rpc_<service>.atfw.gen.*更新; - 调用端 API
rpc_call_api(<service>.atfw.gen.*)。
- 服务端 task action 骨架
- 在骨架的
operator()中实现业务:
task_action_my_method::result_type task_action_my_method::operator()() {
MyMethodRsp &rsp = get_response_body();
// ... 业务逻辑,可 RPC_AWAIT_CODE_RESULT(rpc::db::xxx(...))
RPC_RETURN_CODE(0);
}
- 调用方:
MyMethodReq req;
// ... 填充请求
auto res = RPC_AWAIT_CODE_RESULT(rpc::MyService::my_method(ctx, req, /*目标*/...));