add beginning of CLI app and some backend fixes.
This commit is contained in:
@@ -46,6 +46,8 @@ var loc, _ = time.LoadLocation("Europe/Oslo")
|
||||
var ctx = context.Background()
|
||||
|
||||
func handleEvent(event models.Event) (responses []models.Event) {
|
||||
var deadHandlers []models.EventHandler
|
||||
|
||||
startTime := time.Now()
|
||||
defer func() {
|
||||
duration := time.Since(startTime)
|
||||
@@ -102,6 +104,10 @@ func handleEvent(event models.Event) (responses []models.Event) {
|
||||
continue
|
||||
}
|
||||
|
||||
if handler.OneShot {
|
||||
deadHandlers = append(deadHandlers, handler)
|
||||
}
|
||||
|
||||
if handler.Priority > highestPriority {
|
||||
highestPriority = handler.Priority
|
||||
prioritizedEvent = handler.Actions.FireEvent
|
||||
@@ -159,6 +165,18 @@ func handleEvent(event models.Event) (responses []models.Event) {
|
||||
wg.Done()
|
||||
}(device)
|
||||
}
|
||||
for _, handler := range deadHandlers {
|
||||
wg.Add(1)
|
||||
|
||||
go func(handler models.EventHandler) {
|
||||
err := config.EventHandlerRepository().Delete(context.Background(), &handler)
|
||||
if err != nil {
|
||||
log.Println("Failed to delete spent one-shot event handler:", err)
|
||||
}
|
||||
|
||||
wg.Done()
|
||||
}(handler)
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user