一键导入
bunmq
BunMQ background jobs. Use when implementing queues, workers, retries, cron schedules, intervals, rate limits, or async job processing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
BunMQ background jobs. Use when implementing queues, workers, retries, cron schedules, intervals, rate limits, or async job processing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Skill writing principles. Use when creating, editing, or reviewing any SKILL.md.
Skill rule extraction and creation. Use when the user says /learn.
Kysely database queries. Use when writing, reviewing, or debugging Kysely selects, mutations, joins, transactions, filters, or aggregates.
Frontend components and Tailwind. Use when creating, reviewing, refactoring, splitting, or organizing React components, shared components, component folders, or Tailwind classes.
TanStack Query in React. Use when implementing or reviewing queries, mutations, invalidation, or query hooks.
Lint and optimize existing skills. Use when the user says /skill-linter.
| name | bunmq |
| description | BunMQ background jobs. Use when implementing queues, workers, retries, cron schedules, intervals, rate limits, or async job processing. |
SQLite-backed job queue.
export const { Queue, Worker } = new BunMQ({ db: "./jobs.db" });
const emailQueue = new Queue<EmailPayload>("emails");
const emailWorker = new Worker("emails", processEmail);
const job = emailQueue.add("welcome", { to: "user@example.com" });
const job = emailQueue.add("report", { userId: 123 }, {
attempts: 3,
backoff: { type: "exponential", delay: 1000 },
priority: 10,
delay: 5000,
});
// Wait for result
const result = await emailQueue.add("sync", payload).waitUntilFinished();
const worker = new Worker<NotificationPayload>("notifications", async (job) => {
await sendNotification(job.data);
return { sent: true };
});
worker.on("completed", (job, result) => log("done", job.id));
worker.on("failed", (job, error) => log("failed", job.id, error));
worker.on("retrying", (job, error, info) => log("retry", info.attempt));
worker.on("stalled", (job) => log("stalled", job.id));
// Graceful shutdown
await worker.stop({ graceful: true, timeout: 30000 });
// Cron pattern
queue.schedule("daily-report", {
cron: "0 9 * * *",
tz: "America/Sao_Paulo",
data: { type: "daily" },
});
// Fixed interval
queue.schedule("health-check", {
every: 60000,
immediately: true,
});
const worker = new Worker("api-calls", processor, {
limiter: { max: 100, duration: 60000 },
});