batch-processing-jobs について
大規模データ、定期処理、非同期タスク向けのバッチ処理システムを構築するスキルです。キュー、ワーカー、スケジューラーの例を含みます。
主な機能
- 01Bull Queue と Celery 形式の例
- 02Cron スケジューラーのガイド
- 03リトライとデッドレターキュー
- 04ジョブの優先度と監視
活用シーン
- 01大規模データセットの処理
- 02定期レポートの生成
- 03ETL とデータ転送の実行
- 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 対応