30 lines
540 B
Go
30 lines
540 B
Go
package mq
|
|
|
|
import "strings"
|
|
|
|
type Backend string
|
|
|
|
const (
|
|
BackendRedis Backend = "redis"
|
|
BackendRabbitMQ Backend = "rabbitmq"
|
|
)
|
|
|
|
type Options struct {
|
|
RabbitMQURL string
|
|
}
|
|
|
|
func NewMessageQueues(cfg *Options) (map[Backend]MessageQueue, error) {
|
|
mqs := map[Backend]MessageQueue{}
|
|
mqs[BackendRedis] = NewRedisMQ()
|
|
|
|
if cfg != nil && strings.TrimSpace(cfg.RabbitMQURL) != "" {
|
|
rmq, err := NewRabbitMQ(RabbitMQConfig{URL: cfg.RabbitMQURL})
|
|
if err != nil {
|
|
return mqs, err
|
|
}
|
|
mqs[BackendRabbitMQ] = rmq
|
|
}
|
|
|
|
return mqs, nil
|
|
}
|