Only update status field in DB when worker changes status

This commit is contained in:
Sybren A. Stüvel 2022-02-01 10:16:10 +01:00
parent be89349632
commit 2ca8858c28
3 changed files with 6 additions and 6 deletions

View File

@ -42,7 +42,7 @@ type PersistenceService interface {
CreateWorker(ctx context.Context, w *persistence.Worker) error
FetchWorker(ctx context.Context, uuid string) (*persistence.Worker, error)
SaveWorker(ctx context.Context, w *persistence.Worker) error
SaveWorkerStatus(ctx context.Context, w *persistence.Worker) error
}
type JobCompiler interface {

View File

@ -92,7 +92,7 @@ func (f *Flamenco) SignOn(e echo.Context) error {
w := requestWorkerOrPanic(e)
w.Status = api.WorkerStatusStarting
err = f.persist.SaveWorker(e.Request().Context(), w)
err = f.persist.SaveWorkerStatus(e.Request().Context(), w)
if err != nil {
logger.Warn().Err(err).
Str("newStatus", string(w.Status)).
@ -125,7 +125,7 @@ func (f *Flamenco) SignOff(e echo.Context) error {
// TODO: check whether we should pass the request context here, or a generic
// background context, as this should be stored even when the HTTP connection
// is aborted.
err = f.persist.SaveWorker(e.Request().Context(), w)
err = f.persist.SaveWorkerStatus(e.Request().Context(), w)
if err != nil {
logger.Warn().
Err(err).
@ -159,7 +159,7 @@ func (f *Flamenco) WorkerStateChanged(e echo.Context) error {
w := requestWorkerOrPanic(e)
w.Status = req.Status
err = f.persist.SaveWorker(e.Request().Context(), w)
err = f.persist.SaveWorkerStatus(e.Request().Context(), w)
if err != nil {
logger.Warn().Err(err).
Str("newStatus", string(w.Status)).

View File

@ -60,8 +60,8 @@ func (db *DB) FetchWorker(ctx context.Context, uuid string) (*Worker, error) {
return &w, nil
}
func (db *DB) SaveWorker(ctx context.Context, w *Worker) error {
if err := db.gormDB.Save(w).Error; err != nil {
func (db *DB) SaveWorkerStatus(ctx context.Context, w *Worker) error {
if err := db.gormDB.Model(w).Updates(Worker{Status: w.Status}).Error; err != nil {
return fmt.Errorf("error saving worker: %v", err)
}
return nil