huangxingxing hace 4 meses
padre
commit
7002f4154d
Se han modificado 1 ficheros con 73 adiciones y 1 borrados
  1. 73 1
      src/main/java/com/miniframe/bisiness/mdo/MDO0039Service.java

+ 73 - 1
src/main/java/com/miniframe/bisiness/mdo/MDO0039Service.java

@@ -146,7 +146,7 @@ public class MDO0039Service extends MDO0039BaseModel implements ExecProcessFlow
 			TemplateGenerator.createProblemXml(pid,provo);
 			//创建run.py
 			TemplateGenerator.createRunpy2(pid);
-			run2(pid);
+			runqt(pid);
 		}else{
 			if(StringUtil.isEmpty(pro.getStype())){
 				throw new BusinessException("MDO000011");
@@ -173,6 +173,78 @@ public class MDO0039Service extends MDO0039BaseModel implements ExecProcessFlow
 
 
 	}
+
+	private void runqt(String pid) throws Exception {
+		MdoProComvalMapper comvalDao =UtilTools.getBean(MdoProComvalMapper.class);
+		MdoProComvalSQLBuilder sb =new MdoProComvalSQLBuilder();
+		MdoProComvalSQLBuilder.Criteria sc = sb.createCriteria();
+		sc.andPidEqualTo(pid);
+		comvalDao.deleteByExample(sb);
+
+		FileMonitor surrMonitor = new FileMonitor(1000);
+		SurromdaoFileListener t= new SurromdaoFileListener(pid);
+		surrMonitor.monitor("/cephfs/mdo/"+pid+"/in/myid_0", t);
+		surrMonitor.start();
+		FileMonitor crmMonitor = new FileMonitor(1000);
+		CRMFileListener crml = new CRMFileListener(pid);
+		crmMonitor.monitor("/cephfs/mdo/"+pid+"/in/myid_0/ADflow/results/aerodynamic", crml);
+		crmMonitor.start();
+
+		LogService.addLog(pid,"求解——————————————————开始");
+		DockerExe.stopDocker(pid);
+		DockerExe.runMdo3(pid);
+		final int[] con = {0};
+		final String[] line = {""};
+		CompletableFuture<Void> cf = CompletableFuture.supplyAsync(()-> {try {
+			DockerExe.getDockerLogs(pid,new ResultCallback.Adapter<Frame>() {
+				@Override
+				public void onNext(Frame frame) {
+//					if(con[0] <100){
+//						line[0]+=new String(frame.getPayload());
+//						con[0]++;
+//					}else{
+////					LogService.addLog(pid, line[0]);
+//						line[0]="";
+//						con[0] =0;
+//					}
+//					LogService.addLog(pid, new String(frame.getPayload()));
+//					System.out.print(new String(frame.getPayload()));
+					super.onNext(frame);
+				}
+
+				@Override
+				public void onError(Throwable throwable) {
+					System.err.println("日志获取失败");
+//					LogService.addLog(pid, line[0]);
+					throwable.printStackTrace();
+					super.onError(throwable);
+				}
+				@Override
+				public void onComplete() {
+					System.out.println("日志获取完成");
+//					LogService.addLog(pid, line[0]);
+					super.onComplete();
+				}
+			});
+
+
+			LogService.addLog(pid,"求解——————————————————成功");
+		} catch (Exception e) {
+			LogService.addLog(pid,"求解——————————————————失败");
+			e.printStackTrace();
+		}
+			try {
+				surrMonitor.stop();
+				SurromdaoFileRead.readFile(new File("/cephfs/mdo/"+pid+"/in/myid_0/surromdao_history_all.dat"),pid);
+				crmMonitor.stop();
+				CRMFileRead.readFile(new File("/cephfs/mdo/"+pid+"/in/myid_0/ADflow/results/aerodynamic/CRM_final_000_slices.dat"),pid);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+			return null;
+		});
+	}
+
 	private void run3(String pid) throws Exception {
 		MdoProComvalMapper comvalDao =UtilTools.getBean(MdoProComvalMapper.class);
 		MdoProComvalSQLBuilder sb =new MdoProComvalSQLBuilder();