33 lines
606 B
Go
33 lines
606 B
Go
package amqp
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"sync"
|
|
"system-trace/core/environment"
|
|
"system-trace/core/utils"
|
|
|
|
"github.com/wagslane/go-rabbitmq"
|
|
)
|
|
|
|
var Broker *rabbitmq.Conn
|
|
|
|
func InitConn() *rabbitmq.Conn {
|
|
var conn *rabbitmq.Conn
|
|
conn, err := rabbitmq.NewConn(
|
|
os.Getenv("AMQP_URL"),
|
|
rabbitmq.WithConnectionOptionsLogging,
|
|
rabbitmq.WithConnectionOptionsReconnectInterval(environment.ReconnectionInterval),
|
|
)
|
|
if err != nil {
|
|
log.Println("[AMQP]", err)
|
|
wg := sync.WaitGroup{}
|
|
wg.Add(1)
|
|
to := environment.ReconnectionInterval
|
|
utils.WaitTimeout(&wg, to)
|
|
return InitConn()
|
|
}
|
|
|
|
return conn
|
|
}
|