你好,我有一個用C 撰寫的gRPC異步服務器,
。我正在用AsyncNext接收rpc,它正在自己的執行緒中破壞,目前它的最后期限是16ms。
我正在使用建議的關閉程式
Server->Shutdown()。
Que->Shutdown()。
DrainQue()。
在正常情況下,一切都很正常,但是當客戶端在關機前發送rpc,并且一直發送,從未停止。
AsyncNext在客戶端停止發送之前永遠不會完成。這使得行程在 "關閉 "之后仍然掛起。
我想在任何狀態下 "殺死 "gRPC 服務器,如果正常關閉不成功。因為不停止該行程會帶來許多無法避免的問題。
編輯:我使用的是 gPRC 版本 - 1.40.x 和 Windows 10 作為平臺
。uj5u.com熱心網友回復:
結果發現請求可以通過Context.TryCancel();取消,正在進行的rpcs可以通過Responder.FinishWithError(grpc::Status::CANCELLED, this)結束;
我也沒有使用AsyncNotifyWhenDone
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/318031.html
標籤:
上一篇:Python代碼說明——整數拆分
