retries for connecting to broker

This commit is contained in:
Matthew R Kasun
2022-01-27 15:46:45 -05:00
parent 4ccce6bac5
commit 84d9faeb3f
2 changed files with 23 additions and 5 deletions

View File

@@ -156,9 +156,17 @@ func SetupMQTT() mqtt.Client {
opts := mqtt.NewClientOptions()
broker := servercfg.GetMessageQueueEndpoint()
opts.AddBroker(broker)
client := mqtt.NewClient(opts)
tperiod := time.Now().Add(10 * time.Second)
for {
if token := client.Connect(); token.Wait() && token.Error() != nil {
log.Fatal(token.Error())
logger.Log(2, "unable to connect to broker, retrying ...")
if time.Now().Afer(tperiod) {
log.Fatal(0, "could not connect to broker, exiting ...", token.Error())
}
} else {
break
}
time.Sleep(2 * time.Second)
}
logger.Log(2, "connected to message queue", broker)
return client

View File

@@ -13,6 +13,7 @@ import (
"time"
mqtt "github.com/eclipse/paho.mqtt.golang"
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/config"
"github.com/gravitl/netmaker/netclient/local"
@@ -70,8 +71,17 @@ func SetupMQTT(cfg *config.ClientConfig) mqtt.Client {
}
opts.SetDefaultPublishHandler(All)
client := mqtt.NewClient(opts)
tperiod := time.Now().Add(10 * time.Second)
for {
if token := client.Connect(); token.Wait() && token.Error() != nil {
log.Fatal(token.Error())
logger.Log(2, "unable to connect to broker, retrying ...")
if time.Now().Afer(tperiod) {
log.Fatal(0, "could not connect to broker, exiting ...", token.Error())
}
} else {
break
}
time.Sleep(2 * time.Second)
}
return client
}