このプロジェクトについて

BullMQは、Node.js、Python、.NET、Elixir、Rust、PHPに対応した高性能なRedisベースの分散メッセージキューおよびバッチ処理ライブラリです。堅牢な安定性と原子性を重視して設計されており、信頼性の高いバックグラウンドジョブ処理が必要な本番環境での利用に適しています。 このライブラリは複数の言語でネイティブ実装が提供されており、それぞれ個別のパッケージとして配布されています。具体的には、Node.js/Bun向けに`npm install bullmq`、Python向けに`pip install bullmq`、Rust向けに`cargo add bullmq-official`、Elixir向けに`{:bullmq, "~> x.x"}`、.NET向けに`dotnet add package BullMQ`、そして専用のPHPパッケージがあります。その他のプラットフォームではBullMQ Proxyが利用可能です。 中核的な機能としては、FlowProducerによる親子ジョブ依存関係の管理があり、異なるキュー間でルート、子、孫ジョブを含む複雑なジョブツリーを構築できます。デデュープリケーション(重複排除)により、ディバウンスとスロットリングのパターンをサポートします。また、ジョブの優先度付け、遅延実行、スケジュールに基づく繰り返し実行、設定可能な並列処理が可能です。キューレベルでのレート制限、キューの一時停止と再開、データ整合性を保証する原子性操作、およびすべてのジョブのRedisへの永続化もサポートしています。 BullMQは、完了や失敗などのジョブライフサイクルイベントを監視するためのグローバルイベントにも対応しています。さらに、隔離されたジョブ実行のためのサンドボックスワーカーオプションも提供されています。プロジェクトには、Bull、Kue、Bee、Agendaなどの他のジョブキューソリューションとの機能比較表が含まれており、BullMQのより広範な機能セットが強調されています。 Taskforce.shを通じて公式フロントエンドが利用可能であり、キューの検査、ジョブの検索と再試行、遅延ジョブのプロモーション、メトリクスや統計情報の表示などを行うプロフェッショナルなダッシュボードを提供します。このプロジェクトはオープンソースであり、活発なコミュニティ貢献を受けています。スポンサーにはDragonflyDBが含まれており、これはBullMQワークロードに最適化されたRedis互換のドロップイン置き換え製品です。 Microsoft(Lage経由)、Vendure、Datawrapper、NestJS、Langfuse、Curri、Novu、NocoDB、Infisicalなど、多くの注目すべき組織がBullMQを使用しています。プロジェクトはsemantic-releaseに従っており、自動化されたバージョン管理と公開が行われています。