55 lines
947 B
Go
55 lines
947 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
amqp "github.com/rabbitmq/amqp091-go"
|
|
)
|
|
|
|
var RabbitConn *amqp.Connection
|
|
var RabbitChannel *amqp.Channel
|
|
|
|
func InitRabbitMQ() {
|
|
host := os.Getenv("RABBITMQ_HOST")
|
|
port := os.Getenv("RABBITMQ_PORT")
|
|
user := os.Getenv("RABBITMQ_USER")
|
|
pass := os.Getenv("RABBITMQ_PASSWORD")
|
|
queue := os.Getenv("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)
|
|
}
|