From 726048a8220a3be393b8f7983e87ce1c0312bd15 Mon Sep 17 00:00:00 2001 From: sige Date: Sat, 15 Jun 2024 09:54:39 +0800 Subject: [PATCH] ~ --- app.db | Bin 270336 -> 270336 bytes src/main/java/com/iflytop/a800/TaskManager.java | 33 +++++++++++++-------- .../java/com/iflytop/a800/task/TubeRackTask.java | 4 +-- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app.db b/app.db index b562b491bf7b8342ceea9b2ec454561edc97454e..fe28804a8a935fab68a54f5de981aa9cbf752690 100644 GIT binary patch delta 1794 zcma)-Pl(i39LFcg%+AivCYizF*0MsOrIyN%zW;geB-(3EMe_6UXJ-CL1BqYCl-jDpg-*0xFPIjJ7 z?!A|8eDw9^IXvFlzP+8?-cEns&gN%6q?L|!%@x#M1Q4v!U_GrsXm6;dj8-D<|9vKV z`DwS(AOA>)ll|dN_D}h4TJHAB-^<|Jo)nD zY?gHCC_Ro{!;4pCJ&M2<79y)jnRQ3(2)+#KP}`J#{L{u0`7QmCPv3T=Xm|42-u2 z%6ySt-TEp;^s#(&Vq)X zQ!pI!LU4wfAkl#%tP;fOHU_%Vj_>}Jt-e$Iis5jlcu|USuiR?Wp}2=0y;L-9E_Cta zT3h%gi!D2B)E0Iz%xYWMbkYB?tvrcSN4$B|jK9O*(fj`bNank; delta 1999 zcma)-&x;&I6vw-#cXoDWGF>wy8X^%TMik+Zs_Oa)!m{fjf|`Rcc#y!>Pca8Co>WM0 z4#_zpZtng8t`KDLA~|@9UcBYv#e)YgidPY>?seA=OvXM;&osPOpZ8vUzi;**%=aJ6 z?>;kl>c>wn?xyFhz1w^F?Y+U*d&LLam%SClP*Q;-%mY)>fznihRgMTM1;$Do{jpvA zdZk}zJ}*Y|qtSlx7b**6GW0z(- z7_89_go;LbYYa9OCa>*Wy}B#JvKq8W#*x5@h=3z!z(hz%LKvXjOTvQ-RJcx3-X?ig zNgTZb%_;$uSxUe%Re>c|8e^P}!Ty&u$+E0KcQSN{?x07AA$EW9{EI06;j_j3+P%Z= zd|3A=y?D7;=6%W?yi_d5kC(W*!rAP*Y&`iXLpP5mUlo5|IX``vq0iAP<+tVAvtMQ( z&&o4joDtK9Y06(t>l>5la(Q-^UpT+GF!P=TD=h|Lo3VLDKx3tW=%_f?G7_Qt$l;^# z;rOkcYs;NC-@QaGU4Liy_~pj9!@`v!!qzrIj7|g7nuFrZ0#84Msf@&m^n`7#f^BtR z-gp_br9fhmFH4#N9b5&XHiB^L1EXYjv*%R0bR()#W1RJh`4LdMP z4e>MvuvF6o(=CSsuPQ7Fi^(^qovna%SsTZ!`f-75bYQAE&<77#(j>;@KhQQBa9F1y zswlW$*I5@ri&xE86)Q)jg!O#rKRoL*!W7I~2CJh@CN)yOpM%UcgX=nH9--;Jr$An?YNPu)s;Kc^MjP2fOYPe43gJmQXxIM96<=I;$4BXp J_3!8M>>t2d?u7sV diff --git a/src/main/java/com/iflytop/a800/TaskManager.java b/src/main/java/com/iflytop/a800/TaskManager.java index 771f411..8af5702 100644 --- a/src/main/java/com/iflytop/a800/TaskManager.java +++ b/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(); } } diff --git a/src/main/java/com/iflytop/a800/task/TubeRackTask.java b/src/main/java/com/iflytop/a800/task/TubeRackTask.java index 16bb234..5884b2a 100644 --- a/src/main/java/com/iflytop/a800/task/TubeRackTask.java +++ b/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 args ) { + private void onTubeSamplingFinished(Task task, List args) { TubeTestTask tubeTask = null; if ( !(task instanceof TubeTestTask) ) { return ;