27 lines
862 B
Go
27 lines
862 B
Go
package task_state_machine
|
|
|
|
import "git.blender.org/flamenco/pkg/api"
|
|
|
|
var (
|
|
// Task statuses that always get requeued when the job is requeueing.
|
|
nonCompletedStatuses = []api.TaskStatus{
|
|
api.TaskStatusCanceled,
|
|
api.TaskStatusFailed,
|
|
api.TaskStatusPaused,
|
|
api.TaskStatusSoftFailed,
|
|
}
|
|
|
|
// Workers are allowed to keep running tasks when they are in this status.
|
|
// 'queued', 'claimed-by-manager', and 'soft-failed' aren't considered runnable,
|
|
// as those statuses indicate the task wasn't assigned to a Worker by the scheduler.
|
|
runnableStatuses = map[api.TaskStatus]bool{
|
|
api.TaskStatusActive: true,
|
|
}
|
|
)
|
|
|
|
// IsRunnableTaskStatus returns whether the given status is considered "runnable".
|
|
// In other words, workers are allowed to keep running such tasks.
|
|
func IsRunnableTaskStatus(status api.TaskStatus) bool {
|
|
return runnableStatuses[status]
|
|
}
|