Skip to main content

get_conn

Function get_conn 

Source
pub async fn get_conn() -> Result<Object, PoolError>
Expand description

从全局连接池获取一个数据库连接,失败时按指数退避 + jitter 重试。

这是运行期获取连接的路径:反雪崩导向——快速失败(约 1.6s 后放弃), 让上层限流兜底。启动期(迁移)请用 get_conn_for_startup,它有一个 更长的可配置重试窗口,专为“DB 还没起来”的场景设计。

退避策略见 retry::backoff_for。仅对 Backend/Postgres 错误(DB 不可达)重试; Timeout(池满)直接返回,让上层限流兜底,避免雪崩。 若所有重试均失败,返回最后一次的 PoolError。