|
@@ -117,7 +117,7 @@ public class MDO0039Service extends MDO0039BaseModel implements ExecProcessFlow
|
|
|
TemplateGenerator.createProblemXml(pid,provo);
|
|
|
//创建run.py
|
|
|
TemplateGenerator.createRunpy2(pid);
|
|
|
-// run2(pid);
|
|
|
+ run3(pid);
|
|
|
}else{
|
|
|
if(StringUtil.isEmpty(pro.getStype())){
|
|
|
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 {
|
|
|
MdoProComvalMapper comvalDao =UtilTools.getBean(MdoProComvalMapper.class);
|