关于 batch-processing-jobs
用于构建批处理系统的参考技能,适合大规模数据、定时任务和异步操作,包含队列、工作进程及调度器示例。
主要功能
- 01Bull Queue 和 Celery 风格示例
- 02Cron 调度器指导
- 03重试与死信队列
- 04任务优先级与监控
适用场景
- 01处理大型数据集
- 02生成定时报表
- 03运行 ETL 和数据传输
- 04执行批量更新或清理任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill batch-processing-jobs安装后在 Claude Code 中输入/batch-processing-jobs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bull-queue-nodejs.mdcelery-style-worker-python.mdcron-job-scheduler.mdscripts/validate-pipeline.shtemplates/pipeline.yaml详细介绍
批处理作业
目录
概述
实现可扩展的批处理系统,高效处理大规模数据、定时任务和异步操作。
适用场景
- 处理大型数据集
- 定时生成报告
- 电子邮件/通知活动
- 数据导入和导出
- 图像/视频处理
- ETL 流水线
- 清理和维护任务
- 长时间运行的计算
- 批量数据更新
快速入门
最小可运行示例:
import Queue from "bull";
import { v4 as uuidv4 } from "uuid";
interface JobData {
id: string;
type: string;
payload: any;
userId?: string;
metadata?: Record<string, any>;
}
interface JobResult {
success: boolean;
data?: any;
error?: string;
processedAt: number;
duration: number;
}
class BatchProcessor {
private queue: Queue.Queue<JobData>;
private resultQueue: Queue.Queue<JobResult>;
constructor(redisUrl: string) {
// Main processing queue
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| Bull Queue (Node.js) | Bull Queue (Node.js) |
| Celery-Style Worker (Python) | Celery-Style Worker (Python) |
| Cron Job Scheduler | Cron Job Scheduler |
最佳实践
✅ 应该做
- 为所有作业实现幂等性
- 使用作业队列进行分布式处理
- 监控作业成功率和失败率
- 实现带指数退避的重试逻辑
- 设置合适的超时时间
- 记录作业执行详情
- 使用死信队列处理失败作业
- 实现作业优先级
- 将类似操作批量处理
- 使用连接池
- 实现优雅关闭
- 监控队列深度和处理时间
❌ 不应该做
- 在请求处理程序中同步处理作业
- 忽略失败的作业
- 设置无限重试次数
- 跳过监控和告警
- 在没有超时限制的情况下处理作业
- 在队列中存储大型负载
- 忘记清理已完成的作业
评论
支持 Markdown