sige 1 year ago
parent
commit
726048a822
  1. BIN
      app.db
  2. 33
      src/main/java/com/iflytop/a800/TaskManager.java
  3. 4
      src/main/java/com/iflytop/a800/task/TubeRackTask.java

BIN
app.db

33
src/main/java/com/iflytop/a800/TaskManager.java

@ -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();
}
}

4
src/main/java/com/iflytop/a800/task/TubeRackTask.java

@ -69,7 +69,7 @@ public class TubeRackTask extends TaskBase {
var testTask = new TubeTestTask();
testTask.tube = tube;
testTask.project = project;
testTask.on("StartIncubating", this::onTubeTaskStartIncubating);
testTask.on("TubeSamplingFinished", this::onTubeSamplingFinished);
taskMan.append(testTask);
}
}
@ -87,7 +87,7 @@ public class TubeRackTask extends TaskBase {
}
// tube task finish callback
private void onTubeTaskStartIncubating(Task task, List<Object> args ) {
private void onTubeSamplingFinished(Task task, List<Object> args) {
TubeTestTask tubeTask = null;
if ( !(task instanceof TubeTestTask) ) {
return ;

Loading…
Cancel
Save