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

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

相关推荐
热点推荐
万米高空乘客突发疾病,上海医生空地联动紧急施救

万米高空乘客突发疾病,上海医生空地联动紧急施救

澎湃新闻
2026-10-19 20:46:28
第三例跟腱撕裂!西蒙斯重伤赛季报销后续:将领到全额350万薪水

第三例跟腱撕裂!西蒙斯重伤赛季报销后续:将领到全额350万薪水

罗说NBA
2026-10-19 07:36:07
央行出利好了,防踩踏……

央行出利好了,防踩踏……

资本时差
2026-10-19 18:08:31
上海男篮13分大胜!拒绝被逆转,张镇麟大爆发,古德温14助攻

上海男篮13分大胜!拒绝被逆转,张镇麟大爆发,古德温14助攻

体坛瞎白话
2026-10-19 21:36:21
登顶RoboDojo智能体超过GPT-6 Astra:Manifold AI推出R²SI

登顶RoboDojo智能体超过GPT-6 Astra:Manifold AI推出R²SI

机器之心Pro
2026-10-18 18:12:46
证监会主席提风险!吴清:高度警惕境外挂钩A股个股的杠杆产品等新风险点|快讯

证监会主席提风险!吴清:高度警惕境外挂钩A股个股的杠杆产品等新风险点|快讯

华夏时报
2026-10-19 19:41:03
马斯克:明年将向美国每名儿童赠送一股SpaceX股票

马斯克:明年将向美国每名儿童赠送一股SpaceX股票

界面新闻
2026-10-19 15:58:40
又是形势一片大好!前三季度GDP增速4.6%,人均收入涨5.3%,你信不信?

又是形势一片大好!前三季度GDP增速4.6%,人均收入涨5.3%,你信不信?

六子吃凉粉
2026-10-19 15:46:14
王诗龄一幅桃子画进卢浮宫拍出145万,第二天就被扒了:展厅,花钱就能进

王诗龄一幅桃子画进卢浮宫拍出145万,第二天就被扒了:展厅,花钱就能进

黎兜兜
2026-10-19 14:06:47
Kling 4.0杀疯了!打戏拍出电影感,原生30秒直出大片

Kling 4.0杀疯了!打戏拍出电影感,原生30秒直出大片

机器之心Pro
2026-10-16 15:16:44
日本年轻人,开始“取消吃饭”

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

融资中国
2026-10-19 16:21:58
“超级买家+超级卖家”照见中国经济底气

“超级买家+超级卖家”照见中国经济底气

国际在线
2026-10-19 20:51:52
董宇辉直播卖大闸蟹翻车,连开两个都不达标,当场翻脸要求换商家

董宇辉直播卖大闸蟹翻车,连开两个都不达标,当场翻脸要求换商家

新游戏大妹子
2026-10-19 12:12:30
攻击新疆三文鱼,背后有个美国“职业黑子”

攻击新疆三文鱼,背后有个美国“职业黑子”

补壹刀
2026-10-19 09:53:09
整活了!爆火「闪身步」实时生成动漫版,VAST世界模型全面开源

整活了!爆火「闪身步」实时生成动漫版,VAST世界模型全面开源

机器之心Pro
2026-10-18 18:45:12
证监会新规直指违规减持乱象,减持比例超5%、金额超5亿将被重罚

证监会新规直指违规减持乱象,减持比例超5%、金额超5亿将被重罚

第一财经资讯
2026-10-19 19:26:44
商家称53万元直播合作成交3672.8元 交个朋友回应:未违约,愿补播协商

商家称53万元直播合作成交3672.8元 交个朋友回应:未违约,愿补播协商

封面新闻
2026-10-19 17:41:43
卡加了,吞吐为何没跟上?大模型推理中的等待,有了新解法

卡加了,吞吐为何没跟上?大模型推理中的等待,有了新解法

机器之心Pro
2026-10-16 11:40:11
世界模型能不能上桌?WorldOracle给出了一场真实大考

世界模型能不能上桌?WorldOracle给出了一场真实大考

机器之心Pro
2026-10-16 19:50:16
曝街霸新片有春丽大尺度裸露镜头!美乳翘臀一览无余

曝街霸新片有春丽大尺度裸露镜头!美乳翘臀一览无余

游民星空
2026-10-19 16:04:41
2026-10-19 21:51:00
Ping值焦虑
Ping值焦虑
有态度网友ytd
229文章数 109关注度
往期回顾 全部

数码要闻

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

头条要闻

女子随口一句"姐过得不太好" 8年前帮过的小伙飞来送钱

头条要闻

女子随口一句"姐过得不太好" 8年前帮过的小伙飞来送钱

体育要闻

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

娱乐要闻

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

财经要闻

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

科技要闻

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

汽车要闻

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

态度原创

旅游
亲子
艺术
公开课
军事航空

旅游要闻

济宁石佛路,水杉大道的秋冬浪漫已上线

亲子要闻

工程车小故事:小车车受伤了

艺术要闻

俄罗斯当代画家 叶夫根尼·戈洛洛博夫风景油画选

公开课

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

军事要闻

泽连斯基:若乌“被要求”举行战时选举 他将竞选连任

无障碍浏览 进入关怀版