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

冰箱超温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.

相关推荐
热点推荐
带领8名CBA弃将,险些掀翻三冠王,球迷:让他取代郭士强当国帅

带领8名CBA弃将,险些掀翻三冠王,球迷:让他取代郭士强当国帅

南海浪花
2026-10-19 11:49:35
2027年将会是中华人民共和国全党、全军、全国各族人民重要的一年

2027年将会是中华人民共和国全党、全军、全国各族人民重要的一年

铁锤侃侃而谈
2026-09-12 00:54:59
难逃重罚!英媒:曼城本赛季将被巨额扣分 确保其降级 曼苏尔将走人

难逃重罚!英媒:曼城本赛季将被巨额扣分 确保其降级 曼苏尔将走人

风过乡
2026-10-19 21:53:27
终于判了!疫苗女王无期徒刑,被罚91亿,但那些接种家庭怎么办?

终于判了!疫苗女王无期徒刑,被罚91亿,但那些接种家庭怎么办?

哄动一时啊
2026-10-18 09:57:57
“浑身都是放纵的痕迹!”母亲晒儿子大学三年变化,连面相都变了,家长认为责任在学校,网友们痛斥

“浑身都是放纵的痕迹!”母亲晒儿子大学三年变化,连面相都变了,家长认为责任在学校,网友们痛斥

蝴蝶花雨话教育
2026-10-20 00:05:15
中国将迎来前所未有的死亡高峰,专家得出答案:是这些因素导致的

中国将迎来前所未有的死亡高峰,专家得出答案:是这些因素导致的

混沌录
2026-05-28 22:53:01
港媒:乌正成为“历史的终结”预言破灭之地

港媒:乌正成为“历史的终结”预言破灭之地

参考消息
2026-10-18 20:19:16
U16中国vs阿曼U16:袁博涵、刘宇洋出战,刘凯源、彭熙然首发

U16中国vs阿曼U16:袁博涵、刘宇洋出战,刘凯源、彭熙然首发

懂球帝
2026-10-20 01:01:19
中华人民共和国公民持美国签证赴阿根廷旅游/商务无需签证和电子签(AVE)

中华人民共和国公民持美国签证赴阿根廷旅游/商务无需签证和电子签(AVE)

创作者_cLg1
2026-10-19 09:34:41
屡教不改?韦世豪现身海港看台,怒指场内骂不停,此前被禁赛5场

屡教不改?韦世豪现身海港看台,怒指场内骂不停,此前被禁赛5场

球场没跑道
2026-10-19 09:01:20
董事长为啥认不了亲生龙凤胎?终于真相大白!

董事长为啥认不了亲生龙凤胎?终于真相大白!

稿得轻松
2026-10-19 20:12:43
3亿!奢侈税3亿美元!曝雷霆注定解体大交易

3亿!奢侈税3亿美元!曝雷霆注定解体大交易

篮球实战宝典
2026-10-19 15:41:57
28.58万!长城新车官宣:10月19日,开启预订!

28.58万!长城新车官宣:10月19日,开启预订!

科技堡垒
2026-10-18 10:10:51
为什么职场生存法则教人成了“聪明的坏人”?

为什么职场生存法则教人成了“聪明的坏人”?

小眼睛小世界
2026-10-19 04:22:11
震惊!网传医院今后仅核心岗位保留编制,年成本30万,外包岗仅10万,招聘依旧竞争激烈,网友追问:博士临时工的时代来临了吗

震惊!网传医院今后仅核心岗位保留编制,年成本30万,外包岗仅10万,招聘依旧竞争激烈,网友追问:博士临时工的时代来临了吗

火山詩话
2026-10-17 09:32:09
男子酒后按摩睡死,醒来被女技师拉住:“做了加钱的按摩得补钱!”刚出门就被按倒罚款500

男子酒后按摩睡死,醒来被女技师拉住:“做了加钱的按摩得补钱!”刚出门就被按倒罚款500

一丝不苟的法律人
2026-10-19 17:06:09
11月1日起新规施行, 用个人码收款未申报, 主动补缴为何不能免罚 ?

11月1日起新规施行, 用个人码收款未申报, 主动补缴为何不能免罚 ?

社会日日鲜
2026-10-19 06:27:19
10月19日,退休人员养老金调整方案会公布吗?工龄30年能补1000吗

10月19日,退休人员养老金调整方案会公布吗?工龄30年能补1000吗

虎哥闲聊
2026-10-19 10:18:35
激动落泪!坐轮椅2年的英国阿姨试穿杭州造机器人后,成功行走,儿子当场决定买下!网友:这就是科技的意义

激动落泪!坐轮椅2年的英国阿姨试穿杭州造机器人后,成功行走,儿子当场决定买下!网友:这就是科技的意义

环球网资讯
2026-10-18 17:00:19
要啥自行车,iPhone 17 Pro Max 2TB,跌至 9399 元!

要啥自行车,iPhone 17 Pro Max 2TB,跌至 9399 元!

小柱解说游戏
2026-10-19 19:46:04
2026-10-20 03:31:00
Ping值焦虑
Ping值焦虑
有态度网友ytd
163文章数 109关注度
往期回顾 全部

数码要闻

苹果宣布10月28日举行发布会 将推出触控屏MacBookPro

头条要闻

中国留学生披旭日旗事件最新进展:目前已被遣返

头条要闻

中国留学生披旭日旗事件最新进展:目前已被遣返

体育要闻

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

娱乐要闻

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

财经要闻

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

科技要闻

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

汽车要闻

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

态度原创

亲子
数码
本地
教育
公开课

亲子要闻

无论和谁相处,这八个忠告一定要牢记!

数码要闻

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

本地新闻

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

教育要闻

1359 个市级指标藏在哪里?初中三年铺路地图

公开课

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

无障碍浏览 进入关怀版