|  | @@ -117,7 +117,7 @@ public class MDO0039Service extends MDO0039BaseModel implements ExecProcessFlow
 | 
											
												
													
														|  |  			TemplateGenerator.createProblemXml(pid,provo);
 |  |  			TemplateGenerator.createProblemXml(pid,provo);
 | 
											
												
													
														|  |  			//创建run.py
 |  |  			//创建run.py
 | 
											
												
													
														|  |  			TemplateGenerator.createRunpy2(pid);
 |  |  			TemplateGenerator.createRunpy2(pid);
 | 
											
												
													
														|  | -//			run2(pid);
 |  | 
 | 
											
												
													
														|  | 
 |  | +			run3(pid);
 | 
											
												
													
														|  |  		}else{
 |  |  		}else{
 | 
											
												
													
														|  |  			if(StringUtil.isEmpty(pro.getStype())){
 |  |  			if(StringUtil.isEmpty(pro.getStype())){
 | 
											
												
													
														|  |  				throw new BusinessException("MDO000011");
 |  |  				throw new BusinessException("MDO000011");
 | 
											
										
											
												
													
														|  | @@ -144,6 +144,84 @@ public class MDO0039Service extends MDO0039BaseModel implements ExecProcessFlow
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  | 
 |  | +	private void run3(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 aifoilMonitor = new FileMonitor(1000);
 | 
											
												
													
														|  | 
 |  | +//		AirfoilFileListener airfoilFileListener= new AirfoilFileListener(pid);
 | 
											
												
													
														|  | 
 |  | +//		aifoilMonitor.monitor("/cephfs/mdo/"+pid+"/in/myid_0/xfoil", airfoilFileListener);
 | 
											
												
													
														|  | 
 |  | +//		aifoilMonitor.start();
 | 
											
												
													
														|  | 
 |  | +//
 | 
											
												
													
														|  | 
 |  | +//		FileMonitor cpMonitor = new FileMonitor(1000);
 | 
											
												
													
														|  | 
 |  | +//		CpFileListener cpFileListener= new CpFileListener(pid);
 | 
											
												
													
														|  | 
 |  | +//		cpMonitor.monitor("/cephfs/mdo/"+pid+"/in/myid_0/xfoil", cpFileListener);
 | 
											
												
													
														|  | 
 |  | +//		cpMonitor.start();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		LogService.addLog(pid,"求解——————————————————开始");
 | 
											
												
													
														|  | 
 |  | +		DockerExe.stopDocker(pid);
 | 
											
												
													
														|  | 
 |  | +		DockerExe.runMdo2(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);
 | 
											
												
													
														|  | 
 |  | +//				aifoilMonitor.stop();
 | 
											
												
													
														|  | 
 |  | +//				AirfoilFileRead.readFile(new File("/cephfs/mdo/"+pid+"/in/myid_0/xfoil/airfoil.dat"),pid);
 | 
											
												
													
														|  | 
 |  | +//				cpMonitor.stop();
 | 
											
												
													
														|  | 
 |  | +//				CpFileRead.readFile(new File("/cephfs/mdo/"+pid+"/in/myid_0/xfoil/cp.dat"),pid);
 | 
											
												
													
														|  | 
 |  | +			} catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +				e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +			return null;
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	private void run2(String pid) throws Exception {
 |  |  	private void run2(String pid) throws Exception {
 | 
											
												
													
														|  |  		MdoProComvalMapper comvalDao =UtilTools.getBean(MdoProComvalMapper.class);
 |  |  		MdoProComvalMapper comvalDao =UtilTools.getBean(MdoProComvalMapper.class);
 |