Help us shape the future of Go! Take the 2026 Go Developer Survey

queue

module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2026 License: MIT

README

queue

DB 即队列 + Lease 选主 —— oagentkit 模块矩阵 tier 0(基础层)。

go get github.com/oagentkit/queue
包 职责
worker 任务表驱动的工作池(DB 即队列)+ LeaseStore 选主存储接口
pglease worker.LeaseStore 的 PostgreSQL 实现(条件 UPSERT 一行即成)

定位

tier 0,零矩阵内依赖 —— 队列与选主的存储契约在此定义,实现方按需提供。

pglease 的集成测试是 DSN 门控 的(形如 postgres://…), 仓内零生产依赖:不设 DSN 时集成测试自动跳过。

选主契约

type LeaseStore interface { /* 条件 UPSERT 拿租约,OnStartedLeading/OnStoppedLeading 回调 */ }

实现方需保证:同一时刻至多一个 leader。租约续期失败或进程失联后, 其他实例可在租约过期后接管。

开发

go test ./... -race
go vet ./...
gofmt -l .

规范见 AGENTS.md。

License

MIT

Directories

Path Synopsis
Package pglease — worker.LeaseStore 的 PostgreSQL 实现。
Package pglease — worker.LeaseStore 的 PostgreSQL 实现。
worker 包选主原语:多副本部署时"只能跑一份"的组件(出站轮询、定时清理、 通知汇总等)经租约竞争,与 DB 即队列的 worker 池组成完整的横向扩展故事—— 任务面靠 ClaimNextPending 原子抢占天然分片,控制面靠租约选主收敛为单份。
worker 包选主原语:多副本部署时"只能跑一份"的组件(出站轮询、定时清理、 通知汇总等)经租约竞争,与 DB 即队列的 worker 池组成完整的横向扩展故事—— 任务面靠 ClaimNextPending 原子抢占天然分片,控制面靠租约选主收敛为单份。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL