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) }