ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

干货:配置驱动启动

干货:配置驱动启动 配置驱动启动engine_auto_start 等开关的读取时机需求应用一打开就绪桌面工具如果还要用户手动去启动引擎体验很差。我们的目标是应用打开引擎自动跑起来用户直接点开始处理就好。这靠配置开关engine_auto_start控制。配置对象读一次全局复用配置集中在一个 Config 对象里启动只读一次文件classConfig:defload(self):cfgjson.load(open(config_path,encodingutf-8))self.engine_auto_startcfg.get(engine_auto_start,True)# 默认开self.http_auto_startcfg.get(http_auto_start,False)self.http_portcfg.get(http_port,8000)...defsave(self):# 把当前值写回文件json.dump({...},open(config_path,w,encodingutf-8))读取时机主窗口构建时关键点开关在创建引擎/队列之前就读取好了这样决定要不要自动 startdef__init__(self,config):self.configconfig self.queueTaskQueue(...)# 看配置决定要不要自动拉起引擎ifself.config.engine_auto_start:self.queue.start(self.engine.process)self.engine_btn.setText(停止引擎)self.engine_status.setText(运行中)else:self.engine_status.setText(未启动)注意顺序先读配置 → 再建对象 → 据配置决定行为。配置必须在决策之前加载完别边跑边读。两个开关独立engine_auto_start和http_auto_start是两个独立开关别混engine_auto_start管识别引擎工人要不要自动跑。http_auto_start管 HTTP 服务要不要自动起。都要自动的话两个都开只要引擎不要 HTTP就只开前一个。为什么默认勾选默认engine_auto_startTrue因为绝大多数用户要的就是一开就能用。默认值给到常见需求特殊需求再关掉。一句话配置集中对象 启动前读取 按开关决策行为让开箱即用和可定制两全。
返回列表