From 5f3656616319781b5f902c4d63a5e388db74c285 Mon Sep 17 00:00:00 2001 From: Jonas Leder <jonas@jonasled.de> Date: Sun, 26 Jan 2025 16:04:28 +0100 Subject: [PATCH] run singlethreaded again --- messageworker/main.go | 74 +++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/messageworker/main.go b/messageworker/main.go index 02d8125..3b0cebb 100644 --- a/messageworker/main.go +++ b/messageworker/main.go @@ -20,45 +20,43 @@ func Run() { continue } log.Log.Debug("Received new task: ", taskData) - go func() { - var task types.Task - err = json.Unmarshal([]byte(taskData), &task) - if err != nil { - log.Log.Error("Failed decoding task as JSON: ", err.Error()) - return - } - var instance tables.Instance - err = database.Db.Where("name = ?", task.Instance).First(&instance).Error - if err != nil { - log.Log.Error("Failed retreiving instance from database, pushing task back to queue: ", err.Error()) - queue.MainQueue.Enqueue(taskData, 60) - return - } + var task types.Task + err = json.Unmarshal([]byte(taskData), &task) + if err != nil { + log.Log.Error("Failed decoding task as JSON: ", err.Error()) + return + } + var instance tables.Instance + err = database.Db.Where("name = ?", task.Instance).First(&instance).Error + if err != nil { + log.Log.Error("Failed retreiving instance from database, pushing task back to queue: ", err.Error()) + queue.MainQueue.Enqueue(taskData, 60) + return + } - var jsonData map[string]interface{} - err = json.Unmarshal([]byte(task.Data), &jsonData) - if err != nil { - log.Log.Error("Failed decoding boiler JSON: ", err.Error()) - queue.MainQueue.Enqueue(taskData, 60) - return - } - valuesToInsert := []tables.Value{} - for key, value := range jsonData { - valueType := database.GetOrCreateValueType(key) - dbValue := tables.Value{ - Date: task.Date, - ValueType: valueType, - Value: helper.AnyToString(value), - Instance: instance, - } - valuesToInsert = append(valuesToInsert, dbValue) - } - database.Db.Create(&valuesToInsert) - err = queue.MainQueue.MarkDone(taskId) - if err != nil { - log.Log.Error("Failed marking element in queue as done: ", err.Error()) + var jsonData map[string]interface{} + err = json.Unmarshal([]byte(task.Data), &jsonData) + if err != nil { + log.Log.Error("Failed decoding boiler JSON: ", err.Error()) + queue.MainQueue.Enqueue(taskData, 60) + return + } + valuesToInsert := []tables.Value{} + for key, value := range jsonData { + valueType := database.GetOrCreateValueType(key) + dbValue := tables.Value{ + Date: task.Date, + ValueType: valueType, + Value: helper.AnyToString(value), + Instance: instance, } - log.Log.Info("Stored boiler data in database") - }() + valuesToInsert = append(valuesToInsert, dbValue) + } + database.Db.Create(&valuesToInsert) + err = queue.MainQueue.MarkDone(taskId) + if err != nil { + log.Log.Error("Failed marking element in queue as done: ", err.Error()) + } + log.Log.Info("Stored boiler data in database") } } -- GitLab