Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
redlsz committed Feb 21, 2024
1 parent 5fb669c commit 83300ff
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
9 changes: 6 additions & 3 deletions golang/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -504,16 +504,19 @@ func (cli *defaultClient) startUp() error {
f := func() {
cli.router.Range(func(k, v interface{}) bool {
topic := k.(string)
oldRoute := v
newRoute, err := cli.queryRoute(context.TODO(), topic, cli.opts.timeout)
if err != nil {
cli.log.Errorf("scheduled queryRoute err=%v", err)
}
if newRoute == nil && oldRoute != nil {
if newRoute == nil && v != nil {
cli.log.Info("newRoute is nil, but oldRoute is not. do not update")
return true
}
if oldRoute == nil && len(newRoute) > 0 || oldRoute != nil && !routeEqual(oldRoute.([]*v2.MessageQueue), newRoute) {
var oldRoute []*v2.MessageQueue
if v != nil {
oldRoute = v.([]*v2.MessageQueue)
}
if !routeEqual(oldRoute, newRoute) {
cli.router.Store(k, newRoute)
switch impl := cli.clientImpl.(type) {
case *defaultProducer:
Expand Down
4 changes: 4 additions & 0 deletions golang/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,4 +334,8 @@ func Test_routeEqual(t *testing.T) {

assert.Equal(t, false, reflect.DeepEqual(oldRoute, newRoute))
assert.Equal(t, true, routeEqual(oldRoute, newRoute))
assert.Equal(t, true, routeEqual(nil, nil))
assert.Equal(t, false, routeEqual(nil, newRoute))
assert.Equal(t, false, routeEqual(oldRoute, nil))
assert.Equal(t, true, routeEqual(nil, []*v2.MessageQueue{}))
}

0 comments on commit 83300ff

Please sign in to comment.