core/amqp/amqp.go
2024-07-31 20:14:46 +07:00

34 lines
649 B
Go

package amqp
import (
"log"
"os"
"strconv"
"sync"
"system-trace/core/utils"
"time"
"github.com/wagslane/go-rabbitmq"
)
func InitConn() *rabbitmq.Conn {
var conn *rabbitmq.Conn
if recon, err := strconv.Atoi(os.Getenv("RMQ_RECONNECT_INTERVAL")); err == nil {
conn, err = rabbitmq.NewConn(
os.Getenv("RMQ_URL"),
rabbitmq.WithConnectionOptionsLogging,
rabbitmq.WithConnectionOptionsReconnectInterval(time.Duration(recon)*time.Millisecond),
)
if err != nil {
log.Println("[AMQP]", err)
wg := sync.WaitGroup{}
wg.Add(1)
to := time.Second * 3
utils.WaitTimeout(&wg, to)
return InitConn()
}
}
return conn
}