PgQue v0.1 已发布。
PgQue 是一个“零膨胀(zero-bloat)”的 Postgres 事件/消息队列,完全使用纯 SQL 与 PL/pgSQL 实现。它将最初由 Skype 开发的 PgQ 架构带入现代 Postgres 环境——包括那些不提供/不支持 PgQ 扩展的托管 Postgres 平台。
PgQue 采用“基于快照的批处理(snapshot-based batching)+ 表轮转(table rotation)”,而不是依赖 SKIP LOCKED 再配合 DELETE/UPDATE 的热点路径。这样可以避免许多“库内队列”在持续高负载下常见的死元组、VACUUM 压力、索引膨胀以及随时间漂移的性能退化。
亮点:
pg_cron 集成用于“滴答/ticking”(推荐),或使用外部调度器PgQue 最适合用于需要“持久化事件流/消息队列”,并且在长时间持续负载下“稳定性”比“个位数毫秒级分发延迟”更重要的场景。默认设计通常能在 1–2 秒范围内交付事件,同时 SQL 函数调用本身依然保持轻量。
仓库与文档:
https://github.com/NikolayS/pgque
Hacker News 讨论: