Do not wait on urgent alarms
This commit is contained in:
parent
8956cafa22
commit
f6dc742630
13
filters.go
13
filters.go
|
|
@ -107,6 +107,15 @@ throughNewMessages:
|
|||
return msg
|
||||
}
|
||||
|
||||
func urgentMessage(ev GenericMessage) bool {
|
||||
for _, m := range ev.Messages {
|
||||
if m.Type == satel.PartitionFireAlarm {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func Throttle(inputEvents <-chan GenericMessage, wg *sync.WaitGroup, sleeper Sleeper, logger *log.Logger) <-chan GenericMessage {
|
||||
returnChan := make(chan GenericMessage)
|
||||
timeoutEvents := make(chan interface{})
|
||||
|
|
@ -124,7 +133,9 @@ func Throttle(inputEvents <-chan GenericMessage, wg *sync.WaitGroup, sleeper Sle
|
|||
if !ok {
|
||||
break loop
|
||||
}
|
||||
if currentEvent == nil {
|
||||
if urgentMessage(ev) {
|
||||
returnChan <- ev
|
||||
} else if currentEvent == nil {
|
||||
logger.Print("Waiting for more messages to arrive before sending...")
|
||||
sleeper.Sleep(timeoutEvents)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue