57 lines
5.9 KiB
XML
57 lines
5.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1800" height="1100" viewBox="0 0 1800 1100">
|
||
<defs>
|
||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#f7faff"/><stop offset="1" stop-color="#edf4fb"/></linearGradient>
|
||
<linearGradient id="head" x1="0" y1="0" x2="1" y2="0"><stop stop-color="#063b73"/><stop offset="1" stop-color="#0862a6"/></linearGradient>
|
||
<filter id="shadow"><feDropShadow dx="0" dy="5" stdDeviation="8" flood-opacity=".12"/></filter>
|
||
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#184d80"/></marker>
|
||
<style>
|
||
text{font-family:"Noto Sans CJK SC","WenQuanYi Micro Hei",sans-serif;fill:#11345b}.title{font-size:55px;font-weight:700}.h{font-size:32px;font-weight:700;fill:#fff}.foot{font-size:24px;fill:#ddecff}.t{font-size:25px;font-weight:600}.s{font-size:21px}.box{fill:#fff;stroke:#1b4f82;stroke-width:3;rx:14}.green{fill:#edf9ef;stroke:#16843a}.orange{fill:#fff7e9;stroke:#e87512}.red{fill:#fff1f1;stroke:#c82532}.line{fill:none;stroke:#184d80;stroke-width:4;marker-end:url(#arrow)}
|
||
</style>
|
||
</defs>
|
||
<rect width="1800" height="1100" fill="#f3f7fc"/>
|
||
<text x="900" y="75" text-anchor="middle" class="title">cleanup-smartcam-data 自动清理与恢复策略</text>
|
||
|
||
<g transform="translate(45 115)">
|
||
<rect width="525" height="790" rx="18" fill="#fff" stroke="#b7cee5" stroke-width="2"/>
|
||
<path d="M18 0h489q18 0 18 18v62H0V18Q0 0 18 0" fill="#07508d"/><text x="262" y="52" text-anchor="middle" class="h">检查频率</text>
|
||
<rect class="box" x="95" y="120" width="335" height="78"/><text class="t" x="262" y="168" text-anchor="middle">开机 2 分钟后首次检查</text>
|
||
<path class="line" d="M262 198v58"/>
|
||
<rect class="box green" x="95" y="270" width="335" height="105"/><text class="t" x="262" y="312" text-anchor="middle">正常采集状态</text><text class="s" x="262" y="347" text-anchor="middle">每 60 分钟检查一次</text>
|
||
<path class="line" d="M262 375v58"/>
|
||
<rect class="box red" x="95" y="447" width="335" height="115"/><text class="t" x="262" y="490" text-anchor="middle">采集暂停状态</text><text class="s" x="262" y="526" text-anchor="middle">1 分钟后首次检查</text><text class="s" x="262" y="553" text-anchor="middle">之后每 2 分钟检查</text>
|
||
<path class="line" d="M262 562v58"/>
|
||
<rect class="box" x="72" y="635" width="380" height="105"/><text class="t" x="262" y="678" text-anchor="middle">恢复到 10 GiB</text><text class="s" x="262" y="714" text-anchor="middle">立即恢复采集,停止快速检查</text>
|
||
</g>
|
||
|
||
<g transform="translate(592 115)">
|
||
<rect width="555" height="790" rx="18" fill="#fff" stroke="#b7cee5" stroke-width="2"/>
|
||
<path d="M18 0h519q18 0 18 18v62H0V18Q0 0 18 0" fill="#07508d"/><text x="277" y="52" text-anchor="middle" class="h">安全清理</text>
|
||
<rect class="box" x="85" y="115" width="385" height="82"/><text class="t" x="277" y="165" text-anchor="middle">检查 /userdata 空闲空间</text>
|
||
<path class="line" d="M277 197v55"/>
|
||
<polygon points="277,245 450,335 277,425 104,335" fill="#fff" stroke="#1b4f82" stroke-width="3"/>
|
||
<text class="t" x="277" y="325" text-anchor="middle">空闲 < 10 GiB?</text><text class="s" x="277" y="362" text-anchor="middle">是:读取成功上传名单</text>
|
||
<path class="line" d="M277 425v45"/>
|
||
<rect class="box orange" x="55" y="482" width="445" height="120"/><text class="t" x="277" y="523" text-anchor="middle">只删除已确认上传且超过 60 分钟</text><text class="s" x="277" y="558" text-anchor="middle">videos + videos_raw + annotations</text><text class="s" x="277" y="588" text-anchor="middle">三件套按时间从旧到新删除</text>
|
||
<path class="line" d="M277 602v43"/>
|
||
<rect class="box red" x="55" y="657" width="445" height="90"/><text class="t" x="277" y="696" text-anchor="middle">未上传 / 上传失败 / 正在上传</text><text class="s" x="277" y="729" text-anchor="middle">禁止删除;成功名单不可读时也不删除</text>
|
||
</g>
|
||
|
||
<g transform="translate(1170 115)">
|
||
<rect width="585" height="790" rx="18" fill="#fff" stroke="#b7cee5" stroke-width="2"/>
|
||
<path d="M18 0h549q18 0 18 18v62H0V18Q0 0 18 0" fill="#07508d"/><text x="292" y="52" text-anchor="middle" class="h">磁盘保护与自动恢复</text>
|
||
<rect class="box orange" x="75" y="112" width="435" height="86"/><text class="t" x="292" y="148" text-anchor="middle">空闲 < 10 GiB</text><text class="s" x="292" y="180" text-anchor="middle">开始清理已确认成功的三件套</text>
|
||
<path class="line" d="M292 198v45"/>
|
||
<rect class="box red" x="75" y="256" width="435" height="98"/><text class="t" x="292" y="296" text-anchor="middle">空闲 < 5 GiB</text><text class="s" x="292" y="331" text-anchor="middle">暂停 smart_camera;上传程序继续运行</text>
|
||
<path class="line" d="M292 354v45"/>
|
||
<rect class="box red" x="75" y="412" width="435" height="86"/><text class="t" x="292" y="449" text-anchor="middle">空闲 < 3 GiB</text><text class="s" x="292" y="480" text-anchor="middle">输出 CRITICAL 严重告警</text>
|
||
<path class="line" d="M292 498v45"/>
|
||
<rect class="box" x="75" y="556" width="435" height="82"/><text class="t" x="292" y="606" text-anchor="middle">SFTP / Kafka 继续消化积压</text>
|
||
<path class="line" d="M292 638v42"/>
|
||
<rect class="box green" x="75" y="692" width="435" height="72"/><text class="t" x="292" y="737" text-anchor="middle">空闲 ≥ 10 GiB → 自动恢复采集</text>
|
||
</g>
|
||
|
||
<rect x="170" y="945" width="1460" height="105" rx="18" fill="#07508d"/>
|
||
<text x="900" y="990" text-anchor="middle" class="h">核心原则:只删除确认上传成功的数据;空间不足时暂停采集,不停止上传</text>
|
||
<text x="900" y="1028" text-anchor="middle" class="foot">空闲恢复到 10 GiB 后自动继续采集,并恢复每 60 分钟检查</text>
|
||
</svg>
|