核心用法
MRC Canteen Monitor 是一款面向 MRC 食堂订单系统的实时监控工具。用户通过发送如 "mrc 73"、"token 97" 或 "monitor 42" 等指令触发监控服务,系统会自动提取消息中的所有数字令牌,启动后台 Python 脚本对 Firebase Firestore 数据库进行轮询检测。
监控脚本每 15 秒查询一次 kanteen-mrc-blr-24cfa 项目的 orders 集合,检查对应 studentId 字段的 status 状态。当检测到 "Ready" 状态时,立即通过 Telegram 或 Discord 向用户推送 "🍕 Order X is ready!" 通知。支持多令牌并行监控,每个令牌独立通知,全部就绪后脚本自动退出。
显著优点
- 零延迟响应:采用后台子进程(
subprocess.Popen)启动,Agent 可即时确认用户请求 - 多平台兼容:原生支持 Telegram 和 Discord 双平台,Channel ID 可带或不带平台前缀
- 高可靠性:内置 5 次网络超时重试、HTTP 错误处理、连续失败保护及信号终止处理
- 精准状态追踪:每个令牌独立管理,避免重复通知,自动清理已就绪令牌
- 完整日志审计:所有活动记录至
monitor_YYYYMMDD_HHMMSS.log便于故障排查
潜在缺点与局限性
- 轮询效率瓶颈:15 秒固定间隔在高峰时段可能产生延迟,且频繁轮询增加 Firebase 读取配额消耗
- 无持久化状态:进程退出后监控列表丢失,不支持跨会话恢复或历史订单查询
- 单点故障风险:依赖本地 Python 进程运行,若主机重启或进程被杀死则监控中断
- 平台绑定限制:需预先配置 Firebase 项目凭据,且仅适配特定食堂系统数据结构
适合人群
主要面向 MRC( likely a school/college campus)食堂就餐的学生群体,特别是:
- 需要同时跟踪多个订单的团体订餐场景
- 希望在订单就绪第一时间收到通知、减少现场等待时间的用户
- 已习惯通过 Telegram/Discord 接收即时消息的数字化原生用户
常规风险
| 风险类型 | 说明 |
|---------|------|
| 数据隐私 | 需访问 Firebase 项目,令牌关联学生身份可能存在隐私暴露风险 |
| 服务可用性 | Firebase 配额耗尽或网络中断将导致监控失效 |
| 误报漏报 | 状态同步延迟或数据库写入异常可能导致通知不及时 |
| 资源占用 | 长期运行的后台进程持续消耗服务器/本地计算资源 |