feat(gRPC): add monitor closeStreamTask for cancelled gRPC client stream #1650
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
feat
Check the PR title.
(Optional) Translate the PR title into Chinese.
feat(gRPC): 为已经被 cancel 的 gRPC client stream 添加一个监测 closeStreamTask
(Optional) More detailed description for this PR(en: English/zh: Chinese).
en:
Currently either the user calls the
cancel
function, or the parent stream is cancelled:Users have to call
stream.Recv()
to detect if the ctx has been cancelled and close the stream, which is not intuitive.Therefore, the closeStreamTask is introduced to periodically (currently 5s) detect streams that have been cancelled to avoid stream leakage.
zh(optional):
当前无论是用户主动调用
cancel
函数,还是父 stream 被 cancel:都需要用户主动调用
stream.Recv()
来检测 ctx 是否被 cancel,从而关闭流,这样很不符合直觉。因此引入 closeStreamTask 周期性地(当前为 5s)检测已经被 cancel 的 stream,避免 stream 泄漏。
(Optional) Which issue(s) this PR fixes:
(optional) The PR that updates user documentation: