include state filter when searching for expired jobs and tasks (#2138)

This commit is contained in:
Cheick Keita
2022-07-07 14:53:51 -07:00
committed by GitHub
parent edf537137b
commit ff1d088fa1
2 changed files with 8 additions and 3 deletions

View File

@ -29,7 +29,10 @@ public class JobOperations : StatefulOrm<Job, JobState, JobOperations>, IJobOper
}
public IAsyncEnumerable<Job> SearchExpired() {
return QueryAsync(filter: $"end_time lt datetime'{DateTimeOffset.UtcNow.ToString("o")}'");
var timeFilter = $"end_time lt datetime'{DateTimeOffset.UtcNow.ToString("o")}'";
var stateFilter = Query.EqualAnyEnum("state", JobStateHelper.Available);
var filter = Query.And(stateFilter, timeFilter);
return QueryAsync(filter: filter);
}
public IAsyncEnumerable<Job> SearchState(IEnumerable<JobState> states) {

View File

@ -68,8 +68,10 @@ public class TaskOperations : StatefulOrm<Task, TaskState, TaskOperations>, ITas
}
public IAsyncEnumerable<Task> SearchExpired() {
var timeFilter = $"end_time lt Datetime'{DateTimeOffset.UtcNow.ToString("o")}'";
return QueryAsync(filter: timeFilter);
var timeFilter = $"end_time lt datetime'{DateTimeOffset.UtcNow.ToString("o")}'";
var stateFilter = Query.EqualAnyEnum("state", TaskStateHelper.AvailableStates);
var filter = Query.And(stateFilter, timeFilter);
return QueryAsync(filter: filter);
}
public async Async.Task MarkStopping(Task task) {