2026-02-20 15:31:13 +03:00
|
|
|
package rabbit
|
|
|
|
|
|
2026-04-03 11:21:13 +03:00
|
|
|
import (
|
|
|
|
|
"io"
|
|
|
|
|
"log"
|
|
|
|
|
"os"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
2026-02-20 15:31:13 +03:00
|
|
|
|
|
|
|
|
type Option func(*options)
|
|
|
|
|
|
2026-04-02 15:36:37 +03:00
|
|
|
func WithConnectTimeout(t time.Duration) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
op.connectTimeout = t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-20 15:31:13 +03:00
|
|
|
func WithReconnectDelay(t time.Duration) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
op.reconnectDelay = t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func WithReInitDelay(t time.Duration) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
op.reInitDelay = t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func WithResendDelay(t time.Duration) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
op.resendDelay = t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func WithConsumerRateLimit(t time.Duration) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
op.consumerRateLimit = t
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func WithConsumerBurstSize(t int) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
op.consumerBurstSize = t
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-04-03 11:21:13 +03:00
|
|
|
|
|
|
|
|
func WithLogger(l *log.Logger) Option {
|
|
|
|
|
return func(op *options) { op.logger = l }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func WithLogging(enabled bool) Option {
|
|
|
|
|
return func(op *options) {
|
|
|
|
|
if enabled {
|
|
|
|
|
op.logger = log.New(os.Stdout, "", log.LstdFlags)
|
|
|
|
|
} else {
|
|
|
|
|
op.logger = log.New(io.Discard, "", 0)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|