Files
sendico/api/pkg/messaging/reliable/factory.go
2026-02-18 01:35:28 +01:00

27 lines
775 B
Go

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
}