Skip to content
Snippets Groups Projects
Verified Commit 973188b6 authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

fix: update jobs (sql if job exists) #18

parent ce13f3fc
No related branches found
No related tags found
No related merge requests found
package jobqueue
import (
"errors"
"gorm.io/gorm"
"sync"
)
......@@ -100,14 +101,23 @@ func (s *DBSaver) Start() error {
memLogs := permJob.Logs
permJob.Logs = nil
result := tx.FirstOrCreate(&permJob, map[string]interface{}{"id": permJob.GetID()}).
Assign(permJob)
err := result.Error
// Find or create JobMeta
if err != nil {
s.logError("Error while saving job", "error", err)
var existingJob GenericJob
result := tx.Where("id = ?", permJob.GetID()).First(&existingJob)
if result.Error != nil {
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
err := tx.Create(&permJob).Error
if err != nil {
return err
}
} else {
return result.Error
}
} else {
err := tx.Model(&existingJob).Updates(permJob).Error
if err != nil {
return err
}
}
if result.RowsAffected == 0 {
......
......@@ -265,8 +265,8 @@ func CreateJobAndSchedulerFromPersistence(jobImport JobPersistence, manager *Man
}
case "delay":
scheduler = &DelayScheduler{Delay: jobImport.Scheduler.Delay}
scheduler = &DelayScheduler{Delay: jobImport.Scheduler.Delay}
case "event":
scheduler = &EventScheduler{Event: EventName(jobImport.Scheduler.Event)}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment