39 lines
897 B
Go
39 lines
897 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// RabbitMQConfig holds configuration for RabbitMQ
|
|
type RabbitMQConfig struct {
|
|
Host string
|
|
Port int
|
|
User string
|
|
Password string
|
|
VHost string
|
|
MaxConnections int
|
|
MaxChannels int
|
|
ConnectionTimeout time.Duration
|
|
HeartbeatInterval time.Duration
|
|
ReconnectDelay time.Duration
|
|
MaxReconnectDelay time.Duration
|
|
ReconnectAttempts int
|
|
EnableAutoReconnect bool
|
|
LogLevel string
|
|
MaxRetryAttempts int
|
|
PrefetchCount int
|
|
RetryTTL time.Duration
|
|
}
|
|
|
|
// RabbitMQConnectionString returns the formatted RabbitMQ connection URI
|
|
func (c *AppConfig) RabbitMQConnectionString() string {
|
|
return fmt.Sprintf("amqp://%s:%s@%s:%d/%s",
|
|
c.RabbitMQ.User,
|
|
c.RabbitMQ.Password,
|
|
c.RabbitMQ.Host,
|
|
c.RabbitMQ.Port,
|
|
c.RabbitMQ.VHost,
|
|
)
|
|
}
|