This is an automated email from the ASF dual-hosted git repository.

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new d421b344a2 [INLONG-12120][SDK] Optimize worker selection logic in 
DataProxy Go SDK (#12123)
d421b344a2 is described below

commit d421b344a234cd325e5bcc484e4e7f2c54fa9993
Author: yfsn666 <[email protected]>
AuthorDate: Mon May 18 19:26:28 2026 +0800

    [INLONG-12120][SDK] Optimize worker selection logic in DataProxy Go SDK 
(#12123)
---
 .../dataproxy-sdk-golang/dataproxy/client.go                  | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang/dataproxy/client.go 
b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang/dataproxy/client.go
index f8833b25e3..f06b249a6b 100755
--- a/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang/dataproxy/client.go
+++ b/inlong-sdk/dataproxy-sdk-twins/dataproxy-sdk-golang/dataproxy/client.go
@@ -256,12 +256,15 @@ func (c *client) SendAsync(ctx context.Context, msg 
Message, cb Callback) {
 }
 
 func (c *client) getWorker() (*worker, error) {
-       index := c.curWorkerIndex.Load()
-       w := c.workers[index%uint64(len(c.workers))]
+       workerNum := uint64(len(c.workers))
+       start := c.curWorkerIndex.Load()
        c.curWorkerIndex.Add(1)
 
-       if w.available() {
-               return w, nil
+       for i := uint64(0); i < workerNum; i++ {
+               w := c.workers[(start+i)%workerNum]
+               if w.available() {
+                       return w, nil
+               }
        }
 
        c.metrics.incError(workerBusy.strCode)

Reply via email to