断网续传的缓存容量与补报一致性

简介: 本文详解断网续传设计:缓存容量需按“最坏断网时长”计算,超限则启用滚动聚合;补报须满足时间戳有效、ID去重、限速发送三大一致性约束;存储层采用环形缓冲+CRC校验+原子推进,保障掉电安全;通过断网扫描、掉电注入、越界测试闭环验证。

断网续传的缓存容量与补报一致性

支持四象限运行、采用 FOC 驱动方式的 AQMD6008BLS-TE/2 这类设备常装在地下车库、金属机箱或移动平台上,断网是常态。本地缓存与补报做不好会出现两类事故:缓存溢出丢数据,或补报把过期数据灌进时序库。

一、缓存容量按"最坏断网时长"算

取设备每 10s 上报一条合并消息(约 200 字节,示例值):

最坏断网时长 需缓存条数 需缓存容量 8 MB Flash 可支持
1 h 360 72 KB 远超
12 h 4320 864 KB 约 9 天
3 天 25920 5.2 MB 接近上限
7 天 60480 12 MB 超出,需降采样或覆盖旧数据

判据:容量 ≥ 消息大小 × 最坏断网时长 / 上报周期。若目标是不丢 7 天数据,就不能全程 10s 粒度,要改成"近 24h 保细、更早自动聚合"的滚动策略。

Flash 写入还要考虑寿命:8MB 扇区、擦写寿命 10 万次,若每小时整块重写,寿命约 11 年;若每条消息都单独写页,磨损会集中在少数页。做法是环形缓冲 + 批量提交,并按扇区轮转。

二、补报的三个一致性约束

约束一:时间戳有效性。 平台对上报数据的时间戳有范围限制(不得超出未来 24 小时),过期或超前会被拒。补报前必须校验,超范围的样本应丢弃并计数告警,而不是重试刷屏。

约束二:顺序与去重。 补报按原始时间戳排序,且携带样本唯一 ID,云端按 ID 去重。否则断网恢复瞬间的批量补报会与实时数据交错,产生乱序与重复行。

约束三:补报限速。 恢复后一次性灌入数万条会触发限流。按"每秒若干条 + 退避"平滑发送,优先补最近数据。

/* 环形缓存:满则覆盖最旧(保最新数据),并记录丢弃计数 */
#define RING_CAP 4096
typedef struct {
    uint32_t ts; uint16_t len; uint8_t data[200]; } rec_t;
static rec_t g_ring[RING_CAP];
static uint32_t g_head, g_count, g_dropped;

void ring_push(rec_t r)
{
   
    if (g_count == RING_CAP) {
    g_head = (g_head + 1) % RING_CAP; g_dropped++; }
    else g_count++;
    g_ring[(g_head + g_count - 1) % RING_CAP] = r;
}

/* 补报前校验时间戳:仅允许 [now-7d, now+24h] */
int ts_valid(uint32_t ts, uint32_t now)
{
   
    return (ts <= now + 86400u) && (ts + 7u*86400u >= now);
}

三、掉电与崩溃安全

缓存必须能扛掉电:写入采用"数据 + CRC + 序号"三段,恢复时扫描最后一个完整记录;提交用双副本标志位,避免半写记录被当成有效数据。补报成功后再推进读指针,且推进操作本身要原子。

四、验证方法

一是断网时长扫描:分别断网 1h/12h/3天,恢复后核对云端行数与本地应有样本数,确认丢弃计数与表格一致;二是掉电注入:在补报过程中随机断电 20 次,确认无半写记录、无重复补报;三是时间戳越界测试:伪造超前与过期样本,确认被拒并进入告警计数而非无限重试。

五、小结

缓存容量按"消息大小×最坏断网时长/周期"算,超预算就滚动聚合而不是硬扛;补报要满足时间戳有效、按 ID 去重、限速发送三条约束;存储层用环形缓冲 + CRC + 原子推进扛掉电。用断网扫描、掉电注入、越界样本三类测试闭环。

相关文章
|
5天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
2203 13
|
云安全 安全 网络安全
|
5天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
968 1
|
18天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3119 49
|
12天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2109 2
|
5天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
10天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。
|
4天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)