网易首页 > 网易号 > 正文 申请入驻

冰箱超温43分钟,她的记录本上却写着一切正常

0
分享至

下午两点,展示柜的温度悄悄爬过了线。Dede Mensah 要到五点才会再去看一眼。中间这三个小时,墙上那块夹着记录纸的写字板什么都不会说——它不会报警,不会记下超温从哪一刻开始,也不会告诉她峰值到了多少。


Dede 卖奶酪。店门口一台展示冷柜,后厨一台步入式冷库,每台旁边都拧着一块写字板。她一天写两次温度。她所遵循的英国食品标准局计划(Safer Food Better Business,零售版的 HACCP)要求她这么做:监控冷藏点、记录读数、一旦超出范围就采取行动。

问题出在两次记录之间。如果展示柜在下午两点开始偏暖,而她只在上午九点和下午五点各看一次,纸面上的结论永远是"一切正常"。这个空档不是编出来的,HACCP 的义务也不是编出来的——这正是值得动手解决的部分。

把传感器数据流变成两样东西

Baridi 做的事很具体:把冰箱传感器的读数流,变成 Dede 那块写字板给不了的两样东西——一条超温时间线,和一个不会说谎的告警。

名字来自斯瓦希里语。"Baridi"意思是冷,也是形容天气凉、饮料冰的日常用词,正好指向这个工具盯着的那件事:冷,还是不是冷的?

回放一天的读数,你会得到那条时间线。凡是温度持续超过5C达到至少10 分钟的时段,都会作为一次超温事件出现,带上开始时间、结束时间、持续时长和峰值。顶部一行汇总:"2 次超过 5C,共 43 分钟。"

告警这一侧,每一次独立的超温事件只写一条记录。哪怕跑到一半的进程被杀掉,它也会继续正确地写下去。

谁为这个付钱

一个人的食品生意,已经在用时间和风险付钱了。写字板是无偿劳动,却仍然留下一个检查员一眼能看见的窟窿。市面上的解法是按月计费的 HACCP 记录订阅服务,把你的读数存在别人的服务器上。

Baridi 是本地版本:读数留在店里,没有按条计费,超温的算法可以被检查。对一个利润很薄的奶酪柜台来说,本地部署加上每条读数零成本,决定了这件事是做还是不做。

演示站点跑在 baridi.tech,超温时间线对着真实的 TimescaleDB,走 HTTPS 提供。仪表盘在 baridi.tech/dashboard。

Dede 看到的那一屏是这样的:当天状态是 FAIL,两次超温各自画在 5C 这条线上,峰值温度和超时分钟数被单独标出。可以切换传感器和日期,页脚报告实时数据集大小和实测查询耗时。

她也可能看到想要的那一天:每个传感器都保持在 5C 或以下,状态是 PASS / 全部正常,而不是一片糊弄人的绿色。

同样的数据,原始 API 输出长这样:

  • 第一次超温是门没关:32 分钟爬升,上午中段峰值9.404C
  • 第二次是化霜循环:11 分钟,峰值7.11C
  • 第三个事件是凌晨 05:00 一分钟的尖峰,冲到9.87C,它被故意放进数据里,却没有出现在时间线上——因为规则是持续十分钟,一分钟不算超温。

杀掉进程再重启的那次验证

对一个记录工具来说,这一条最要紧:一个崩溃之后不能信任的记录器,比纸还糟。告警活动被故意加了 25 秒延迟,好让它在超温已被检测到、告警还没写出的那个窗口里被杀掉,然后重启一个全新的 worker。

结果是告警迟到了,但没有丢,也没有重复触发。最终日志里,两条记录各自带着自己的键:fridge-01:2026-10-12:2026-10-12T10:04:00+00:00和fridge-01:2026-10-12:2026-10-12T17:04:00+00:00。这个验证也放在站上,以录制测试的形式呈现,而不是现场操作。

朴素扫行 vs 连续聚合

超温的计算有个笨办法:把每一行原始数据拉出来,在 Python 里拼接。也有 TimescaleDB 的办法:读一个连续聚合,在 SQL 里分组。

在干净的一天上,两者结果完全一致,笨办法还略快一点——1440 行实在不算什么。朴素扫行五次取最好成绩4.08 ms,连续聚合4.52 ms,两条路径对超温的判断一致。

但合规日志不是一天的事,是好几台冰箱好几个月的事。把数据加载到1,038,240条读数之后,同一条单日查询的执行计划讲的是另一个故事:朴素方案共享命中 5782 个缓冲页,把 5760 行原始数据交给 Python;重方案共享命中 59 个缓冲页,返回 4 行已经算完的结果。

页面读取少了大约98%,超温检测发生在引擎里,而不是 Python 循环里。墙钟时间是14.96 ms对19.63 ms,在那个数据量下是 1.31 倍的单日加速。往百万行历史里加一天新数据,只刷新那一天的桶,耗时1.27s,不需要全量重建。

生成时间线的那段 SQL 用time_bucket建了一个按分钟聚合的连续物化视图,超温事件则来自在这个视图上跑的 gaps-and-islands 查询:给每一分钟打上超阈值或未超阈值的标记,状态每变一次就开一个新的岛,只保留长度达到持续窗口的岛。

关键路径上没有 AI 模型

这是故意的。超温的判断是算术:温度超过阈值,持续超过一个窗口。模型给不出代码无法验证的东西,所以事实归代码管。作者留了一个可选的"瞬时波动 vs 真实超温"模型的接口,然后没有接上——因为持续窗口已经把那一分钟的尖峰挡掉了,而那个尖峰本来正是要交给模型去抓的。硬把模型塞进去,只是装饰。

线上站点从头到尾跑在开放组件上:FastAPI 应用放在 Caddy 后面自动处理 HTTPS,TimescaleDB 跑在容器里,超温查询写在 SQL 里。TimescaleDB 绑定在回环地址上,公开 API 做了限流。

读数应该留在店里

Dede 的读数是她自己的合规责任。那是检查员会索要的记录,也是顾客投诉时保护她的记录。这份记录不该待在别人的订阅服务后面、别人的服务器上,还按条计费。

Baridi 从头到尾用开放组件搭起来:容器里的 TimescaleDB、Temporal 的开放开发服务器、一套 Python 技术栈。读数从不离开这台机器,没有按条计的云费用,超温算法是一条她和检查员都能读懂的 SQL,而不是厂商的黑箱。

边界也写得很直白。Baridi 是记录和告警的辅助工具,不是经过认证的合规记录,界面上就这么写着。1.31 倍的数据库优势是真的,但在单日数据量下并不惊人;更有说服力的是缓冲页读取和真实数据量下的增量刷新。数据是合成的,由带种子的脚本生成,文章里也说明了这一点。那个瞬时波动模型是被推迟了,不是被藏起来了:持续窗口已经解决了问题,模型就留在外面。

一个闭源 API 也能做这套算术。但它没法把读数免费留在店里——而那才是整件事的重点。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
票房超26亿,破7项纪录,中国观众助力好莱坞大片再次登顶全球冠军

票房超26亿,破7项纪录,中国观众助力好莱坞大片再次登顶全球冠军

影视高原说
2026-10-19 15:13:59
维密大秀中国超模刷屏,奚梦瑶大翅膀内衣亮眼,刘雯第十次登秀台

维密大秀中国超模刷屏,奚梦瑶大翅膀内衣亮眼,刘雯第十次登秀台

四斤
2026-10-19 11:40:56
溥仪大婚当夜,太监隔墙听见皇后惨叫,婉容咬紧牙关:不准进来

溥仪大婚当夜,太监隔墙听见皇后惨叫,婉容咬紧牙关:不准进来

凡人侃史
2026-10-19 09:29:04
中国游客在菲律宾跳水时手表被偷偷抠松,落水后遭当地人索要打捞费,当事人:最终支付了500比索才将手表找回;不少网友表示“同遭遇”

中国游客在菲律宾跳水时手表被偷偷抠松,落水后遭当地人索要打捞费,当事人:最终支付了500比索才将手表找回;不少网友表示“同遭遇”

扬子晚报
2026-10-18 15:21:00
日本年轻人,开始“取消吃饭”

日本年轻人,开始“取消吃饭”

融资中国
2026-10-19 16:21:58
国家统计局:今年前三季度,全国居民人均可支配收入34230元,同比名义增长5.3%,农村居民收入增长快于城镇居民

国家统计局:今年前三季度,全国居民人均可支配收入34230元,同比名义增长5.3%,农村居民收入增长快于城镇居民

极目新闻
2026-10-19 10:40:19
二十届五中全会10月26日召开!核心聚焦这一项大事

二十届五中全会10月26日召开!核心聚焦这一项大事

小影的娱乐
2026-10-19 10:31:10
《璀璨之城》陳瀅大胆演出挑戰電視尺度,被張智霖拍照

《璀璨之城》陳瀅大胆演出挑戰電視尺度,被張智霖拍照

粤睇先生
2026-10-18 21:23:31
10月19日,人社部与财政部公布关于2026年调整养老金的文件了吗?

10月19日,人社部与财政部公布关于2026年调整养老金的文件了吗?

小谈食刻美食
2026-10-19 16:15:08
小玥儿近照曝光!和爸爸后妈逛街和弟弟互动好有爱越来越像大S了

小玥儿近照曝光!和爸爸后妈逛街和弟弟互动好有爱越来越像大S了

別甾虛僞
2026-10-18 15:22:46
自然资源部原党组成员,国家林草局原党组书记、局长张建龙严重违纪违法被开除党籍

自然资源部原党组成员,国家林草局原党组书记、局长张建龙严重违纪违法被开除党籍

新华社
2026-10-19 17:06:20
重要发布会,就在今日

重要发布会,就在今日

中国基金报
2026-10-19 06:43:46
上海徐浦大桥车祸:被控制的货车司机,和通报里“消失”的浙F白车

上海徐浦大桥车祸:被控制的货车司机,和通报里“消失”的浙F白车

迷世书童
2026-10-18 14:51:44
今晚CBA联赛安排了两场比赛,CCTV5会转播其中一场比赛

今晚CBA联赛安排了两场比赛,CCTV5会转播其中一场比赛

余蹮搞笑段子
2026-10-19 15:38:11
当众拒唱国歌不认中国籍,把两个孩子全送出国,如今报应终于来了

当众拒唱国歌不认中国籍,把两个孩子全送出国,如今报应终于来了

鹤羽说个事
2026-09-02 16:51:59
大唐最血腥的一夜!八万权贵惨遭清算,从此中国再无门阀世家

大唐最血腥的一夜!八万权贵惨遭清算,从此中国再无门阀世家

掠影后有感
2026-10-17 09:33:02
专家说:人到六十,就要开始为死亡做准备!不是悲观,是顶级清醒

专家说:人到六十,就要开始为死亡做准备!不是悲观,是顶级清醒

娱乐洞察点点
2026-10-17 16:23:37
128度电池!奔驰新车官宣:10月18日即将开卖

128度电池!奔驰新车官宣:10月18日即将开卖

科技阿维
2026-10-18 22:15:14
高市早苗称对过往言论“毫无遗憾”,称中国不能要日本忏悔

高市早苗称对过往言论“毫无遗憾”,称中国不能要日本忏悔

铁锤侃侃而谈
2026-10-19 09:38:20
起拍价超6亿元!4架波音737系列民航客机无人报名流拍,共吸引12万余人次围观

起拍价超6亿元!4架波音737系列民航客机无人报名流拍,共吸引12万余人次围观

齐鲁壹点
2026-10-19 16:37:02
2026-10-19 17:55:00
Ping值焦虑
Ping值焦虑
有态度网友ytd
219文章数 109关注度
往期回顾 全部

数码要闻

2026网易未来公开课开启:第五期对话王晟

头条要闻

一男子在成都租走坦克300 失联半年后GPS在境外上线

头条要闻

一男子在成都租走坦克300 失联半年后GPS在境外上线

体育要闻

从NBA退役10年后,他真去警局上班了

娱乐要闻

奚梦瑶回应重返维密:还是很开心的

财经要闻

黄奇帆之子往事:从广微系到魏桥的跳跃

科技要闻

王晟:近千亿资金涌入后 具身智能开始退烧

汽车要闻

不知道二代海鸥多好玩? 上赛道跑两圈 很过瘾的

态度原创

房产
本地
数码
艺术
公开课

房产要闻

最新房价:海口,三亚齐跌!

本地新闻

因新荣记出圈,这座浙东小城才是吃货天堂

数码要闻

179元 小米米家热敷坐姿垫发布:三挡恒温、久坐提醒

艺术要闻

缅怀 | 著名油画家 宋惠民先生逝世,享年89岁

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版