|
|
@ -1,5 +1,6 @@ |
|
|
|
package com.iflytop.a800; |
|
|
|
import com.iflytop.uf.model.UfMdbDictItem; |
|
|
|
import com.iflytop.uf.util.UfCommon; |
|
|
|
import jakarta.annotation.PostConstruct; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
import java.util.ArrayList; |
|
|
@ -34,18 +35,26 @@ public class TaskManager { |
|
|
|
// 清理掉结束的任务 |
|
|
|
tasks.removeIf(task -> UfMdbDictItem.match("TASK_STATUS", "FINISHED", task.getStatus())); |
|
|
|
|
|
|
|
for ( var task : tasks ) { |
|
|
|
if (UfMdbDictItem.match("TASK_STATUS", "READY", task.getStatus())) { |
|
|
|
task.taskResume(); |
|
|
|
return ; |
|
|
|
} |
|
|
|
} |
|
|
|
// 寻找新的可执行的任务 |
|
|
|
var thread = new Thread(() -> { |
|
|
|
do { |
|
|
|
for ( var task : tasks ) { |
|
|
|
if (UfMdbDictItem.match("TASK_STATUS", "READY", task.getStatus())) { |
|
|
|
task.taskResume(); |
|
|
|
return ; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for ( var task : tasks ) { |
|
|
|
if (UfMdbDictItem.match("TASK_STATUS", "NEW", task.getStatus())) { |
|
|
|
task.start(); |
|
|
|
return ; |
|
|
|
} |
|
|
|
} |
|
|
|
for ( var task : tasks ) { |
|
|
|
if (UfMdbDictItem.match("TASK_STATUS", "NEW", task.getStatus())) { |
|
|
|
task.start(); |
|
|
|
return ; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
UfCommon.delay(100); |
|
|
|
} while ( true ); |
|
|
|
}); |
|
|
|
thread.start(); |
|
|
|
} |
|
|
|
} |