服务监控页:配置持久化与引擎状态的可视化
目标:启动即服务、状态看得见
服务监控页承担两件事:存配置 (启动参数、自动启动开关)、看状态(引擎闲忙、当前任务)。
配置持久化
配置存本地配置对象,启动时读、保存时写:
python
def _save(self):
cfg = self.config
cfg.http_port = int(self.port_spin.value())
cfg.engine_auto_start = self.engine_autostart_check.isChecked()
cfg.http_auto_start = self.http_autostart_check.isChecked()
cfg.save()
def _load(self):
cfg = self.config
self.port_spin.setValue(cfg.http_port)
self.engine_autostart_check.setChecked(cfg.engine_auto_start)
self.http_autostart_check.setChecked(cfg.http_auto_start)
"启动时自动启动引擎"这个开关
应用要能"开起来就能用",给配置加 engine_auto_start 开关(默认勾选)。启动时主窗口读取它:
python
if self.config.engine_auto_start:
self.queue.start(self.engine.process) # 自动拉起引擎工人
self.engine_status.setText("运行中")
self.engine_btn.setText("停止引擎")
于是应用一启动,引擎就绪,本机调试页点了"开始处理"直接能入队。这个开关和"HTTP 自动启动"是两个独立开关,一个管引擎、一个管 HTTP 服务。
状态可视化
通过 update_current_task 显示当前正在处理哪个目录:
python
def update_current_task(self, folder):
self.current_task_label.setText(f"正在处理: {folder}")
结果回来 / 失败,都更新这个标签,用户能看到系统在做什么。
一句话
服务监控页 = 配置的读写入口(持久化)+ 引擎/HTTP 状态的实时展示。把"服务化"的意图都摆到这一页,别的页面只管干活。