apache / brpc

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".
https://brpc.apache.org
Apache License 2.0
16.05k stars 3.92k forks source link

我在brpc实现了mongo的客户端, 对于无返回的请求, 该如何处理呢? 静静的等待超时? #2636

Open jiangdongzi opened 2 months ago

jiangdongzi commented 2 months ago

image

chenBright commented 2 months ago

是不是可以使用 #2547 notify_on_success特性,在写入成功后,通过id_wait结束rpc?

jiangdongzi commented 2 months ago

是不是可以使用 #2547 notify_on_success特性,在写入成功后,通过id_wait结束rpc?

结束rpc并不是关闭socket吧?

chenBright commented 2 months ago

我理解这种没有响应的请求,在socket写完请求包就可以认为成功了。

设置notify_on_success后,socket写完请求包,就会调用id_wait的回调函数,这时候error_code是0,表示写入成功,就可以认为rpc调用成功了吧。

jiangdongzi commented 2 months ago

我理解这种没有响应的请求,在socket写完请求包就可以认为成功了。

设置notify_on_success后,socket写完请求包,就会调用id_wait的回调函数,这时候error_code是0,表示写入成功,就可以认为rpc调用成功了吧。

对, 写入成功就表示rpc成功了, 调用id_wait回调会关闭对应的socket和fd么

chenBright commented 2 months ago

设置notify_on_success后,不会

chenBright commented 1 month ago

related PR: #2171

jiangdongzi commented 1 month ago

设置notify_on_success后,不会

如果直接返回, 那么回包后controller, request, response析构了怎么办, 还是说只支持不回包的请求?

chenBright commented 1 month ago

目前只支持不回包的请求。

什么场景需要支持回包的?

jiangdongzi commented 1 month ago

目前只支持不回包的请求。

什么场景需要支持回包的?

有时候想完全忽略回包, 但是还是需要自己new cntl, new repsonse, 还要在 done Closure中 删除cntl, response