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