wms-be/config/rabbitmq.go

55 lines
997 B
Go

package config
import (
"fmt"
"log"
amqp "github.com/rabbitmq/amqp091-go"
"github.com/spf13/viper"
)
var RabbitConn *amqp.Connection
var RabbitChannel *amqp.Channel
func InitRabbitMQ() {
host := viper.GetString("RABBITMQ_HOST")
port := viper.GetString("RABBITMQ_PORT")
user := viper.GetString("RABBITMQ_USER")
pass := viper.GetString("RABBITMQ_PASSWORD")
queue := viper.GetString("RABBITMQ_LOG_QUEUE") // contoh: log_queue
uri := fmt.Sprintf("amqp://%s:%s@%s:%s/",
user, pass, host, port,
)
conn, err := amqp.Dial(uri)
if err != nil {
log.Printf("RabbitMQ connect error: %v\n", err)
return
}
ch, err := conn.Channel()
if err != nil {
log.Printf("RabbitMQ channel error: %v\n", err)
return
}
_, err = ch.QueueDeclare(
queue,
true,
false,
false,
false,
nil,
)
if err != nil {
log.Printf("RabbitMQ declare queue error: %v\n", err)
return
}
RabbitConn = conn
RabbitChannel = ch
log.Println("RabbitMQ connected and queue declared:", queue)
}