Skip to content

[Enhancement#1178][GOLANG]: limit goroutines in SendAsync using internal async executor#1210

Open
woaishixiaoxiao wants to merge 1 commit intoapache:masterfrom
woaishixiaoxiao:enhancement/async-send-leak
Open

[Enhancement#1178][GOLANG]: limit goroutines in SendAsync using internal async executor#1210
woaishixiaoxiao wants to merge 1 commit intoapache:masterfrom
woaishixiaoxiao:enhancement/async-send-leak

Conversation

@woaishixiaoxiao
Copy link
Copy Markdown
Contributor

Which Issue(s) This PR Fixes

Fixes #1178

Brief Description

Use existing internal task channel for SendAsync to bound concurrency and avoid goroutine leaks.

How Did You Test This Change?

use unitest:Added comprehensive unit tests for SendAsync covering
Real-world Simulation:tested against a local RocketMQ cluster with artificial broker delay

@woaishixiaoxiao
Copy link
Copy Markdown
Contributor Author

@lizhimins
the current asynchronous sending implementation creates a new goroutine for every request without proper lifecycle management, leading to potential goroutine leaks under high concurrency.

@lizhimins
Copy link
Copy Markdown
Member

@guyinyou Please help review

Copy link
Copy Markdown
Contributor

@guyinyou guyinyou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement] GOLANG Limit goroutine in SendAsync by introducing async executor pool

3 participants