diff --git a/messageworker/main.go b/messageworker/main.go index 02d812587147680735fb8978a376f149554e6234..3b0cebb7be6a24da9449a41cda5e56ff58b23402 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") } }