| 138 | } |
| 139 | |
| 140 | func (t *TaskQueue) GetJobsByStatus(status task_queue2.JobStatus) (bool, []task_queue2.OneJob, error) { |
| 141 | |
| 142 | defer t.queueLock.Unlock() |
| 143 | t.queueLock.Lock() |
| 144 | |
| 145 | outOneJobs := make([]task_queue2.OneJob, 0) |
| 146 | // 如果队列里面没有东西,则返回 false |
| 147 | if t.isEmpty() == true { |
| 148 | return false, nil, nil |
| 149 | } |
| 150 | |
| 151 | for TaskPriority := 0; TaskPriority <= taskPriorityCount; TaskPriority++ { |
| 152 | |
| 153 | t.taskPriorityMapList[TaskPriority].Each(func(key interface{}, value interface{}) { |
| 154 | |
| 155 | tOneJob := task_queue2.OneJob{} |
| 156 | tOneJob = value.(task_queue2.OneJob) |
| 157 | if tOneJob.JobStatus == status { |
| 158 | // 找到加入列表 |
| 159 | outOneJobs = append(outOneJobs, tOneJob) |
| 160 | } |
| 161 | }) |
| 162 | } |
| 163 | |
| 164 | return true, outOneJobs, nil |
| 165 | } |
| 166 | |
| 167 | // GetJobsByPriorityAndStatus 根据任务优先级和状态获取任务列表 |
| 168 | func (t *TaskQueue) GetJobsByPriorityAndStatus(taskPriority int, status task_queue2.JobStatus) (bool, []task_queue2.OneJob, error) { |