- Timestamp:
- 05/29/20 13:28:25 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/TaskDao.cs
r17180 r17574 50 50 //Because there is at the moment no case where this makes sense (there don't exist parent tasks which need to be calculated), 51 51 //we skip this step because it's wasted runtime 52 return DataContext.ExecuteQuery<TaskPriorityInfo>(GetWaitingTasksQueryString, 53 slave.ResourceId, 54 Enum.GetName(typeof(TaskState), TaskState.Waiting), 55 slave.FreeCores, 52 return DataContext.ExecuteQuery<TaskPriorityInfo>(GetWaitingTasksQueryString, 53 slave.ResourceId, 54 Enum.GetName(typeof(TaskState), TaskState.Waiting), 55 slave.FreeCores, 56 56 slave.FreeMemory).ToList(); 57 57 } … … 65 65 /// <returns></returns> 66 66 public IEnumerable<Task> GetParentTasks(IEnumerable<Guid> resourceIds, int count, bool finished) { 67 var query = from t in Table68 where t.State == TaskState.Waiting69 && t.IsParentTask70 && t.Job.AssignedJobResources.All(x => resourceIds.ToList().Contains(x.ResourceId))71 && t.FinishWhenChildJobsFinished == finished72 && t.ChildJobs.Any()73 && t.ChildJobs.All(x =>74 x.State == TaskState.Finished75 || x.State == TaskState.Aborted76 || x.State == TaskState.Failed)67 var query = from t in Table 68 where t.State == TaskState.Waiting 69 && t.IsParentTask 70 && t.Job.AssignedJobResources.All(x => resourceIds.ToList().Contains(x.ResourceId)) 71 && t.FinishWhenChildJobsFinished == finished 72 && t.ChildJobs.Any() 73 && t.ChildJobs.All(x => 74 x.State == TaskState.Finished 75 || x.State == TaskState.Aborted 76 || x.State == TaskState.Failed) 77 77 orderby t.Priority descending 78 78 select t; … … 82 82 public void UpdateExecutionTime(Guid taskId, double executionTime) { 83 83 DataContext.ExecuteCommand(UpdateExecutionTimeQuery, executionTime, DateTime.Now, taskId); 84 } 85 86 public int DeleteObsolete(int batchSize) { 87 return DataContext.ExecuteCommand(DeleteObsoleteQueryString, batchSize); 84 88 } 85 89 … … 129 133 WHERE TaskId = {2} 130 134 "; 135 136 private const string DeleteObsoleteQueryString = @" 137 delete top ({0}) t1 138 from task t1 139 left join task t2 on t1.taskid = t2.parenttaskid 140 join job j on j.jobid = t1.jobid 141 where j.jobstate = 'deletionpending' and t2.taskid is null 142 "; 131 143 #endregion 132 144 }
Note: See TracChangeset
for help on using the changeset viewer.