zoukankan      html  css  js  c++  java
  • 资源文件更新逻辑设计

    1 资源文件更新
    1.1 规则:
    1.1.1 资源文件存在于三个位置:app内、更新目录内、更新服务器上。任何位置的资源文件,相对路径保持一致。
    1.1.2 本地保存根路径:app-storage://
    1.1.3 单个文件版本控制:不做。每次需要更新时清除更新目录,重新下载全部可更新资源。
    1.1.4 加载顺序:更新目录→app目录→更新服务器(即使更新到本地失败,该资源也应可以直接从服务器读到)
    1.2 特殊文件:
    1.2.1 config_base.ini:默认配置文件,包括基础版本号(该app发行包的默认资源版本号)。此文件不做更新。
    1.2.2 version.xml:记录当前资源版本
    1.2.3 config.ini:当前版本的配置文件,包括该版本资源文件列表
    1.3 更新流程:
    1.3.1 从服务器上更新version文件,对比本地的版本,确认是否需要更新
    1.3.2 从服务器上更新config文件
    1.3.3 解析config文件进行部分初始化
    1.3.4 从config中读取资源文件列表,并更新
    1.3.5 若更新时,本地文件写入失败,继续流程
     
    2 缓存
    2.1 规则:
    2.1.1 缓存文件保存路径:app-storage://cache/
    2.1.2 缓存文件不保持完整路径,文件路径做以下转换:
             imgDomain起始的url:将imgDomain去除,用剩余的路径做转换
             其他host的url:保存host和path部分(即目前写死为http,若有需求使用其他协议再改),路径按规则转换
             转换规则:将路径中的"/"、"?"改为"~"
             例:http://math.zuoyebao.net/latex/png?tex=123,转换后变为:math.zuoyebao.net~latex~png~tex=123
    2.2 缓存有效期控制:TODO
    2.3 缓存移除策略:当缓存大小超过上限时,全部清除
  • 相关阅读:
    MySQL的存储引擎
    MySQL的索引及执行计划
    MySQL的SQL基础应用
    MySQL基础入门
    代码质量检测SonarQube
    Jenkins持续集成
    Git版本控制及gitlab私有仓库
    jumpserver跳板机
    Keepalived高可用服务
    well-known file is not secure
  • 原文地址:https://www.cnblogs.com/jason-beijing/p/10328013.html
Copyright © 2011-2022 走看看