outbox for gateways
This commit is contained in:
26
api/pkg/messaging/reliable/factory.go
Normal file
26
api/pkg/messaging/reliable/factory.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package reliable
|
||||
|
||||
import (
|
||||
pmessaging "github.com/tech/sendico/pkg/messaging"
|
||||
"github.com/tech/sendico/pkg/mlogger"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
)
|
||||
|
||||
func NewReliableProducerFromConfig(logger mlogger.Logger, direct pmessaging.Producer, outbox OutboxStore, driverSettings model.SettingsT, opts ...Option) (*ReliableProducer, Settings, error) {
|
||||
settings, err := ParseSettings(driverSettings)
|
||||
if err != nil {
|
||||
return nil, Settings{}, err
|
||||
}
|
||||
if !settings.Enabled {
|
||||
return nil, settings, nil
|
||||
}
|
||||
|
||||
combined := []Option{
|
||||
WithBatchSize(settings.BatchSize),
|
||||
WithPollInterval(settings.PollInterval()),
|
||||
WithMaxAttempts(settings.MaxAttempts),
|
||||
}
|
||||
combined = append(combined, opts...)
|
||||
|
||||
return NewReliableProducer(logger, direct, outbox, combined...), settings, nil
|
||||
}
|
||||
Reference in New Issue
Block a user