CI / backend (push) Canceled after 0s
上一版用 `manager.polling()` 判"有没有人在收消息",那是进程内状态:请求落到持有者 回答 true、落到备用进程回答 false,页面上就会每两秒闪一次"已停止"。 改成查数据库里的 advisory lock(`pg_locks`,objsubid=2 的两段式锁),谁抢到租约所有 进程都看得见。`lease_held()` 自己开一条短会话查,不复用请求会话——接口里常在 `await session.commit()` 之后才拼返回值,那时原事务已经关了。