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 }