用户量上升重评落地(DESIGN §7.0):web/broker.py 拆 LocalRunBroker(原进程内 实现,默认)/ RedisRunBroker 同接口双实现,ZCBOT_REDIS_URL env 开关。 - event:PUBLISH zcbot:ev:<tid> + 单条 async pubsub reader 路由本地订阅 queue (Redis 只管跨进程一跳,fan-out 最后一公里仍在进程内) - done:SETEX 60s key + publish 双通道;订阅先挂 channel 再查 key,晚到不漏 - cancel:SETEX/GET/DEL key,loop chunk 间 poll,跨实例可达——蓝绿切换窗口 「刷新丢直播 / 停止失灵」两个边缘消失;稳态双实例分流只差 nginx 配置 - 容错:启动 ping 不通 fail-fast(同 sandbox init 纪律);运行中失败 10s 节流 log + 降级丢帧,run 不受影响;reader 1s 退避重连并重挂活跃 channel - lifespan finally 加 broker.shutdown();sinks.py 解开对旧类名的 import - tests/test_broker_redis.py 9 例(fakeredis:跨实例 emit/cancel、晚订阅 done、 降级不抛、fail-fast);requirements 加 redis/fakeredis - RUN.md:env 段 + 蓝绿节 + bootstrap(apt install redis-server)+ 故障兜底 3 行 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| static | ||
| __init__.py | ||
| admin.py | ||
| app.py | ||
| auth.py | ||
| broker.py | ||
| pptx_render.py | ||
| sinks.py | ||
| static_files.py | ||