(self)
| 67 | return self.j_project._start_spring_boot_project(project_data, write_systemd_file, need_wait) |
| 68 | |
| 69 | def restart_update(self) -> dict: |
| 70 | project_data = self.j_project.get_project_find(self.project_name) |
| 71 | if not project_data: |
| 72 | return json_response(False, msg="项目不存在") |
| 73 | |
| 74 | project_config = project_data['project_config'] |
| 75 | old_jar = project_config['project_jar'] |
| 76 | if self.new_jar != old_jar: |
| 77 | if not os.path.isfile(self.new_jar): |
| 78 | return json_response(False, msg="项目jar包不存在") |
| 79 | |
| 80 | project_config['jar_path'] = os.path.dirname(self.new_jar) |
| 81 | project_config['project_jar'] = self.new_jar |
| 82 | old_jar_name = os.path.basename(old_jar) |
| 83 | project_cmd_list = project_config['project_cmd'].split(" ") |
| 84 | for i in range(len(project_cmd_list)): |
| 85 | if old_jar_name in project_cmd_list[i]: |
| 86 | project_cmd_list[i] = self.new_jar |
| 87 | break |
| 88 | |
| 89 | new_project_cmd = " ".join(project_cmd_list) |
| 90 | project_config['project_cmd'] = new_project_cmd |
| 91 | project_config["change_flag"] = True |
| 92 | |
| 93 | s_admin = RealServer() |
| 94 | server_name = "spring_" + project_config["project_name"] + project_config.get("server_name_suffix", "") |
| 95 | if s_admin.daemon_status(server_name)["msg"] == "服务不存在!": |
| 96 | self.j_project.stop_by_kill_pid(project_data) |
| 97 | if os.path.isfile(project_config["pids"]): |
| 98 | os.remove(project_config["pids"]) |
| 99 | return self.start_spring_project(project_data, write_systemd_file=True, need_wait=False) |
| 100 | |
| 101 | if "change_flag" in project_config and project_config.get("change_flag", False): |
| 102 | del project_config["change_flag"] |
| 103 | s_admin.daemon_admin(server_name, "stop") |
| 104 | s_admin.del_daemon(server_name) |
| 105 | self.j_project.stop_by_kill_pid(project_data) |
| 106 | if os.path.isfile(project_config["pids"]): |
| 107 | os.remove(project_config["pids"]) |
| 108 | |
| 109 | public.M("sites").where("id=?", (project_data["id"],)).update( |
| 110 | {"project_config": json.dumps(project_config)} |
| 111 | ) |
| 112 | return self.start_spring_project(project_data, write_systemd_file=True) |
| 113 | else: |
| 114 | return self.start_spring_project(project_data, write_systemd_file=False) |
| 115 | |
| 116 | # 实际执行启动的线程 |
| 117 | def run_task(self): |
no test coverage detected