Skip to content

Commit

Permalink
add option WithUnitMode WithUnitName
Browse files Browse the repository at this point in the history
  • Loading branch information
tuweizhong authored Jan 31, 2023
1 parent bc6dec9 commit 3a92798
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion producer/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ limitations under the License.
package producer

import (
"strings"
"time"

"github.com/apache/rocketmq-client-go/v2/internal"
Expand Down Expand Up @@ -144,7 +145,28 @@ func WithNameServer(nameServers primitive.NamesrvAddr) Option {
// WithNameServerDomain set NameServer domain
func WithNameServerDomain(nameServerUrl string) Option {
return func(opts *producerOptions) {
opts.Resolver = primitive.NewHttpResolver("DEFAULT", nameServerUrl)
h := primitive.NewHttpResolver("DEFAULT", nameServerUrl)
if opts.UnitName != "" {
h.SetUnitName(opts.UnitName)
}
opts.Resolver = h
}
}

// WithUnitMode set the unit mode
func WithUnitMode(unitMode bool) Option {
return func(opts *producerOptions) {
opts.UnitMode = unitMode
}
}

// WithUnitName set the name of specified unit
func WithUnitName(unitName string) Option {
return func(opts *producerOptions) {
opts.UnitName = strings.TrimSpace(unitName)
if ns, ok := opts.Resolver.(*primitive.HttpResolver); ok {
ns.SetUnitName(opts.UnitName)
}
}
}

Expand Down

0 comments on commit 3a92798

Please sign in to comment.