retry to send alert to plugin channel if it fails
@@ -99,11 +99,16 @@ func FormatAlerts(result []*ent.Alert) models.AddAlertsRequest {
func (c *Controller) sendAlertToPluginChannel(alert *models.Alert, profileID uint) {
if c.PluginChannel != nil {
+ RETRY:
+ for try := 0; try < 3; try++ {
select {
case c.PluginChannel <- csplugin.ProfileAlert{ProfileID: uint(profileID), Alert: alert}:
log.Debugf("alert sent to Plugin channel")
+ break RETRY
default:
- log.Warningf("Cannot send alert to Plugin channel")
+ log.Warningf("Cannot send alert to Plugin channel (try: %d)", try)
+ time.Sleep(time.Millisecond * 50)
+ }
}
}
}
