SuperAPI AI 工具集

pg-boss

通用与其它

查看项目

更新于 10-16 08:05

技能介绍

用途:pg-boss 是面向 Node.js 的 PostgreSQL 任务队列,任务存储在数据库中,用于后台任务、定时任务、类 cron 调度与任务滚动等场景,借助数据库获得持久化与可靠性。

主要能力:支持定时调度(boss.schedule 支持 cron 表达式、时区与 singletonKey)、任务入队(boss.send 支持重试与过期等选项)、批量并发处理(work 的 batchSize)、失败重试(retryLimit、retryDelay、expireInSeconds)、延迟删除(deleteAfterSeconds)以及队列大小与任务查询接口。

使用方式:用 new PgBoss 创建实例并 await boss.start(),连接串来自环境变量,可指定 schema(如 pgboss)与 monitorIntervalSeconds。v10+ 需先 await boss.createQueue(name, 选项) 再 schedule/work;用 boss.work 注册处理器,用 boss.send 入队。建议使用单例 getPgBoss() 避免重复实例,监听 'stopped' 事件并在看门狗中恢复,健康检查失败时返回 503,SIGTERM/SIGINT 时调用 boss.stop({ graceful: true, timeout: 30000 })。

限制与注意:资料指出 schedule 应该在 createQueue 之后调用,否则队列不存在;缺少 singletonKey 可能导致重启后任务重复;无 worker 时任务会停留在 created 状态;选项名应为 pollingIntervalSeconds 而非 newJobCheckIntervalSeconds;Next.js 构建可能因 instrumentation 打包服务端依赖报 stream/net/tls 错误,需用 webpackIgnore 处理;调试可查询 pgboss.schedule 与 pgboss.job 表。资料未提供收费、价格与具体平台支持信息。