@ bossbench/ core (中文(简体) )
Bossbench的核心软件包. 它包含pg-boss/Postgres寄存器,动作服务,API路由,并捆绑了仪表盘UI.
适应器矩阵
| 软件包 | 框架 | 挂载样式 |
|---|---|---|
@bossbench/hono | 浩诺 | app.route() |
@bossbench/h3 | h3 / 硝基 | 处理器包装器 |
@bossbench/nuxt | 纳克特/ 硝基 | 路由模块 |
@bossbench/adonis | 阿多尼斯·贾克 | 路由器挂载 |
@bossbench/tanstack-start | TanStack 启动 | 路由处理器 |
@bossbench/express | 快递 | app.use() |
@bossbench/fastify | 快捷化 | 插件 |
@bossbench/elysia | 爱莉西亚 | 插件 |
@bossbench/nestjs | 网点JS | 控制器/模块 |
@bossbench/next | 下一个.js | 路由处理器 |
CLI 设置
npx @bossbench/cli init
CLI探测到Hono,h3,Nuxt/Nitro,AdonisJS,TanStack Start,Express,Fastify,Elysia,NestJS,和Next.js等项目.
核心 API
import PgBoss from "pg-boss";
import { Hono } from "hono";
import { bossbench } from "@bossbench/hono";
const boss = new PgBoss({ connectionString: process.env.DATABASE_URL!, schema: "pgboss" });
await boss.start();
const app = new Hono();
app.route(
"/jobs",
bossbench({
boss,
db: process.env.DATABASE_URL!,
basePath: "/jobs",
auth: {
username: process.env.BOSSBENCH_USER!,
password: process.env.BOSSBENCH_PASS!,
},
}),
);
选项
| 选项 | 说明 |
|---|---|
boss | 可选 PgBoss 举个例子 突变需要. |
db | Postgres 连接字符串, Pool,或 Client。需要读取,除非适配器通过兼容的连接. |
schema | pg-boss schema. (原始内容存档于2018-09-30). 默认为 pgboss。 。 。 . |
auth | 基本认证证书。 要求,除非 allowUnauthenticated: true。 。 。 . |
allowUnauthenticated | 明确允许无防护浏览. 默认为 false。 。 。 . |
readonly | 禁用所有突变 。 默认为 true 没有认证, false 与授权. |
allowManualEnqueue | 启用手动排队和排队复制动作 。 默认为 false。 。 。 . |
allowQueueClean | 只启用队列干净预览 。 要求数 boss,可写模式,和路由保护。 默认为 false。 。 。 . |
allowQueueCleanDelete | 启用不可逆的队列清洁删除 。 需要精确确认,直接SQL安全,以及线路保护. 默认为 false。 。 。 . |
alerts | 可选配置驱动的警戒规则和联络点. 评价是只读的;交付选手是选入的. |
tags | 字段从 job.data 可用作过滤器. |
警报
警告配置在 BossbenchOptions,从 pg-boss / Postgres 数据进行评估,然后通过捆绑的提醒页面再浮出水面 /api/alerts。 。 。 .
bossbench({
db: process.env.DATABASE_URL!,
auth: {
username: process.env.BOSSBENCH_USER!,
password: process.env.BOSSBENCH_PASS!,
},
alerts: {
enabled: true,
rules: [
{
id: "critical-failures",
name: "Critical failures",
type: "failed_count",
windowMinutes: 10,
threshold: 5,
severity: "critical",
cooldownMinutes: 30,
contactPointIds: ["ops"],
},
],
contactPoints: [
{ id: "ops", name: "Ops", type: "discord", urlEnv: "OPS_DISCORD_WEBHOOK" },
],
},
});
规则支助 failed_count, (中文(简体) ), dead_letter_count, (中文(简体) ), retry_backlog_count, (中文(简体) ), oldest_created_age, (中文(简体) ), avg_wait_ms, (中文(简体) ), avg_duration_ms,以及 warning_count。 。 。 . oldest_created_age 阈值为秒;等和持续阈值为毫秒. 联络点可以是: webhook, (中文(简体) ), slack,或 discord. 偏爱 urlEnv 或仅用于 Webhook URL 的服务器配置;仪表板只接收蒙面的联络点摘要.
AlertRunner 用于服务器侧发送。 它不自动启动定时器; 调用 runOnce() 从一个进程或你自己的调度器。 在复制部署中,操作一个单一的警报员,或在交付前增加部署级别的锁定.
警卫
Bossbench 需要非空闲 auth 默认。 使用 allowUnauthenticated: true 仅用于本地开发或当另一个中间软件保护路径时。 无 auth,Bossbench默认只读模式.
队列清空被分割为预览并删除 . allowQueueClean 启用预览,以及 allowQueueCleanDelete 只有当预览也被允许时,才允许不可逆转地删除。 删除运行前需要精确确认文本 。 排队清除目标 pg-boss 直接存储,所以失败的删除可以去除基本的死信/重写证据. 批量限制; 重复同时 hasMore 排出大排队时是真实的.