add options in broker
Go / test (pull_request) Has been cancelled Details
lint / lint (pull_request) Has been cancelled Details
pr / test (pull_request) Has been cancelled Details

This commit is contained in:
Денис Евстигнеев 2024-04-07 20:48:47 +03:00 committed by Евстигнеев Денис Сергеевич
parent 47497b49b3
commit c3cabc1fe5
3 changed files with 21 additions and 9 deletions

3
.gitignore vendored
View File

@ -1,6 +1,8 @@
# Develop tools
/.vscode/
/.idea/
.idea
.vscode
# Binaries for programs and plugins
*.exe
@ -13,6 +15,7 @@
_obj
_test
_build
.DS_Store
# Architecture specific extensions/prefixes
*.[568vq]

View File

@ -4,6 +4,7 @@ package broker // import "go.unistack.org/micro/v4/broker"
import (
"context"
"errors"
"time"
"go.unistack.org/micro/v4/metadata"
"go.unistack.org/micro/v4/options"
@ -19,6 +20,8 @@ var (
ErrDisconnected = errors.New("broker disconnected")
// ErrInvalidMessage returns when message has nvalid format
ErrInvalidMessage = errors.New("broker message has invalid format")
// DefaultGracefulTimeout
DefaultGracefulTimeout = 5 * time.Second
)
// Broker is an interface used for asynchronous messaging.

View File

@ -3,6 +3,7 @@ package broker
import (
"context"
"crypto/tls"
"sync"
"time"
"go.unistack.org/micro/v4/codec"
@ -36,22 +37,27 @@ type Options struct {
Name string
// Address holds the broker address
Address []string
Wait *sync.WaitGroup
GracefulTimeout time.Duration
}
// NewOptions create new Options
func NewOptions(opts ...options.Option) Options {
options := Options{
Register: register.DefaultRegister,
Logger: logger.DefaultLogger,
Context: context.Background(),
Meter: meter.DefaultMeter,
Codecs: make(map[string]codec.Codec),
Tracer: tracer.DefaultTracer,
newOpts := Options{
Register: register.DefaultRegister,
Logger: logger.DefaultLogger,
Context: context.Background(),
Meter: meter.DefaultMeter,
Codecs: make(map[string]codec.Codec),
Tracer: tracer.DefaultTracer,
GracefulTimeout: DefaultGracefulTimeout,
}
for _, o := range opts {
o(&options)
o(&newOpts)
}
return options
return newOpts
}
// PublishOptions struct