Support pausing jobs #104313

Manually merged
Sybren A. Stüvel merged 28 commits from David-Zhang-10/flamenco:paused-job-status into main 2024-07-01 17:53:44 +02:00
Showing only changes of commit 95f3472e6d - Show all commits

View File

@ -168,16 +168,17 @@ func (sm *StateMachine) jobStatusIfAThenB(
// isJobPausingComplete returns true when the job status is pause-requested and there are no more active tasks. // isJobPausingComplete returns true when the job status is pause-requested and there are no more active tasks.
func (sm *StateMachine) isJobPausingComplete(ctx context.Context, logger zerolog.Logger, job *persistence.Job) (bool, error) { func (sm *StateMachine) isJobPausingComplete(ctx context.Context, logger zerolog.Logger, job *persistence.Job) (bool, error) {
if job.Status == api.JobStatusPauseRequested { if job.Status != api.JobStatusPauseRequested {
numActive, _, err := sm.persist.CountTasksOfJobInStatus(ctx, job, api.TaskStatusActive) return false, nil
if err != nil { }
return false, err numActive, _, err := sm.persist.CountTasksOfJobInStatus(ctx, job, api.TaskStatusActive)
} if err != nil {
if numActive == 0 { return false, err
// There is no active task, and the job is in pause-requested status, so we can pause the job. }
logger.Info().Msg("No more active tasks, job is paused") if numActive == 0 {
return true, nil // There is no active task, and the job is in pause-requested status, so we can pause the job.
} logger.Info().Msg("No more active tasks, job is paused")
return true, nil
} }
return false, nil return false, nil
} }