Ejemplo n.º 1
0
 def post(self):
     in_arg = dict(mesh_status_parser.parse_args())
     mesh_id = in_arg.get("meshId", None)
     if mesh_id is None:
         return create_resp(1, msg="we didn't get meshId", result=None)
     result = DB.query_mesh_status(mesh_id)
     if result is None:
         return create_resp(1, msg="没有该网格作业的状态", result=None)
     slurm_id = result["slurmId"]
     status = SlurmDB().query_job_status(slurm_id)
     if status == -2:
         return create_resp(1, msg="slurm中没有对应的作业", result=None)
     result["slurmStatus"] = status
     result["currentStep"] = result["totalStep"] - 1 if \
         result["currentStep"] > result["totalStep"] else result["currentStep"]
     return create_resp(0, msg="success", result=result)
Ejemplo n.º 2
0
 def stop_actions(cls, mesh_id):
     ms = DB.query_mesh_status(mesh_id)
     if ms is None:
         pass
     slurm_id = ms["slurmId"]
     status = SlurmDB().query_job_status(slurm_id)
     if status is 0 or status is 1:
         mesh_dir = DB().query_mesh_dir(mesh_id)
         if mesh_dir is not None:
             DIR_MONITOR.kill_watcher(mesh_dir)
             Slurm.kill_job(slurm_id)
             core_logger.info(
                 f"杀死网格作业 | slurm_id: {slurm_id} | mesh_id: {mesh_id}")
             return 0, "success"
         else:
             return 2, "查询网格错误"
     else:
         return 1, "mesh job has finished!"
Ejemplo n.º 3
0
 def on_modified(self, event):
     res_file = event.src_path
     save_offset = 0
     line_matches = 0
     for line, offset in offset_file(res_file, offset=self.offset):
         if re.search("Finished", line):
             line_matches += 1
         if re.search("End", line):
             DB.compete_mesh_step(mesh_id=self.mesh_id)
             return
         save_offset = offset
     self.current_step += line_matches
     self.offset = save_offset if save_offset > 0 else self.offset
     res = DB.query_mesh_status(self.mesh_id)
     if res == {}:
         convert_logger.critical(f"mesh_status中没有对应的mesh | {self.mesh_id}")
         return
     else:
         DB.update_mesh_status(self.mesh_id, current_step=self.current_step)