Fixed messaging buffering issue
This commit is contained in:
@@ -20,11 +20,12 @@ import (
|
||||
type natsSubscriotions = map[string]*TopicSubscription
|
||||
|
||||
type NatsBroker struct {
|
||||
nc *nats.Conn
|
||||
js nats.JetStreamContext
|
||||
logger *zap.Logger
|
||||
topicSubs natsSubscriotions
|
||||
mu sync.Mutex
|
||||
nc *nats.Conn
|
||||
js nats.JetStreamContext
|
||||
logger *zap.Logger
|
||||
topicSubs natsSubscriotions
|
||||
mu sync.Mutex
|
||||
bufferSize int
|
||||
}
|
||||
|
||||
type envConfig struct {
|
||||
@@ -32,6 +33,8 @@ type envConfig struct {
|
||||
Port int
|
||||
}
|
||||
|
||||
const defaultConsumerBufferSize = 1024
|
||||
|
||||
// loadEnv gathers and validates connection details from environment variables
|
||||
// listed in the Settings struct. Invalid or missing values surface as a typed
|
||||
// InvalidArgument error so callers can decide how to handle them.
|
||||
@@ -83,6 +86,10 @@ func NewNatsBroker(logger mlogger.Logger, settings *nc.Settings) (*NatsBroker, e
|
||||
var err error
|
||||
var cfg *envConfig
|
||||
var natsURL string
|
||||
bufferSize := defaultConsumerBufferSize
|
||||
if settings != nil && settings.BufferSize > 0 {
|
||||
bufferSize = settings.BufferSize
|
||||
}
|
||||
if settings != nil && strings.TrimSpace(settings.URLEnv) != "" {
|
||||
urlVal := strings.TrimSpace(os.Getenv(settings.URLEnv))
|
||||
if urlVal != "" {
|
||||
@@ -123,8 +130,9 @@ func NewNatsBroker(logger mlogger.Logger, settings *nc.Settings) (*NatsBroker, e
|
||||
}
|
||||
|
||||
res := &NatsBroker{
|
||||
logger: l.Named("nats"),
|
||||
topicSubs: natsSubscriotions{},
|
||||
logger: l.Named("nats"),
|
||||
topicSubs: natsSubscriotions{},
|
||||
bufferSize: bufferSize,
|
||||
}
|
||||
|
||||
if res.nc, err = nats.Connect(natsURL, opts...); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user