開源專案
taskforcesh/bullmq avatar
taskforcesh/bullmq

BullMQ:以 Redis 為基礎的分散式佇列,支援多種語言

BullMQ - 基於 Redis 的 NodeJS、Python、Elixir、Rust 和 PHP 的訊息佇列和批次處理。

9,403 個 Star685 個 ForkTypeScriptMIT

秒懂

它是什麼?
README 中關於安裝、任務處理、FlowProducer、功能比較、多語言用戶端與授權的內容。
適合誰用?
BullMQ 是以 Redis 為基礎的佇列程式庫,為多種語言提供原生用戶端,並帶有 TypeScript 的 Queue、Worker 與 FlowProducer 範例,採用 MIT 授權。README 足以啟動一個最小佇列,但 PostgreSQL、效能基準與維運細節並未在 README 中說明。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

bullmq:BullMQ 的定位與支援語言

BullMQ 是以 TypeScript 撰寫的分散式訊息佇列與批次處理程式庫。README 開頭稱它是用於 Node.js、Python、Elixir、Rust、PHP 等語言的 Redis 分散式佇列,並稱其設計目標是穩定的原子操作。這個描述來自專案自己的 README;倉庫內沒有提供基準測試或獨立測量來支持這個說法。倉庫後設資料也列出 PostgreSQL,但 README 本身只討論 Redis,所以 PostgreSQL 支援並未被 README 證實,需要查閱文件。npm 套件名稱為 bullmq。README 也連結到 docs.bullmq.io,並顯示加入 Slack 工作區的徽章。(bullmq 1-1)

在 taskforcesh/bullmq 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taskforcesh/bullmq 的 README、master 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 bullmq 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 1)

taskforcesh/bullmq 第 1 節的入口還要和相鄰章節分開看:bullmq README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taskforcesh/bullmq 第 1 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 bullmq 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。bullmq README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

bullmq:安裝與最小任務流程

README 給出一條安裝命令:yarn add bullmq。隨後提到,如果使用 node-redis 介接器(createNodeRedisClient),需要安裝 redis v5 或更新版本(redis >= 5.0.0);如果使用 Valkey Glide 介接器,則需要安裝 @valkey/valkey-glide。核心 API 用三個 TypeScript 範例展示:用 Queue 建立佇列並新增任務,例如 queue.add('cars', { color: 'blue' });用 Worker 處理任務,回呼函式接收 job 並根據 job.name 執行;用 QueueEvents 監聽 completed 和 failed 事件,分別取得 jobId 和 failedReason。這些就是 README 中「gist」一節的完整內容。(bullmq 2-1)

在 taskforcesh/bullmq 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taskforcesh/bullmq 的 README、master 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 bullmq 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 2)

taskforcesh/bullmq 第 2 節的入口還要和相鄰章節分開看:bullmq README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taskforcesh/bullmq 第 2 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 bullmq 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。bullmq README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

bullmq:使用 FlowProducer 建立任務樹

README 還包含一個 FlowProducer 範例,用於新增帶父子關係的任務。範例建立了一個樹:topQueueName 上的根任務有兩個子任務,其中一個子任務在 grandChildrenQueueName 下又有兩個孫任務。add 呼叫回傳 originalTree,但 README 沒有展示如何讀取這個回傳值。它只說這只是冰山一角,並指向 docs.bullmq.io 的官方文件。README 沒有解釋 FlowProducer 如何處理重試、失敗或樹的清理,因此這些細節未被該來源證實。(bullmq 3-1)

在 taskforcesh/bullmq 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taskforcesh/bullmq 的 README、master 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 bullmq 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 3)

taskforcesh/bullmq 第 3 節的入口還要和相鄰章節分開看:bullmq README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taskforcesh/bullmq 第 3 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 bullmq 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。bullmq README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

bullmq:功能對比表與開源版本範圍

README 中的對比表列出了 BullMQ-Pro、BullMQ、Bull、Kue、Bee 和 Agenda。對於開源版 BullMQ,表中勾選的功能包括父子依賴、去重(防抖和節流)、優先權、並行、延遲任務、全域事件、限流、暫停/恢復、沙箱 worker、重複任務、原子操作、持久化和 UI。表還標明 BullMQ 和 BullMQ-Pro 的最佳化目標是 Jobs / Messages。僅 BullMQ-Pro 勾選的功能有 observables、群組限流、群組支援和批次支援。表沒有說明這些功能的具體實作方式。表還列出了每個工具的後端:BullMQ、BullMQ-Pro、Bull、Kue 和 Bee 使用 redis,Agenda 使用 mongo。(bullmq 4-1)

在 taskforcesh/bullmq 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taskforcesh/bullmq 的 README、master 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 bullmq 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 4)

taskforcesh/bullmq 第 4 節的入口還要和相鄰章節分開看:bullmq README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taskforcesh/bullmq 第 4 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 bullmq 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。bullmq README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

bullmq:多語言原生用戶端與官方前端

BullMQ 在多個語言中有原生實作,每個實作放在本倉庫的子目錄裡。README 列出了 Node.js 和 Bun(透過 npm install bullmq)、Python(pip install bullmq)、Rust(cargo add bullmq-official --rename bullmq)、Elixir({:bullmq, "~> x.x"})和 PHP(沒有給出套件管理員命令)。對於其他平台,它指向 BullMQ Proxy。README 也推廣 Taskforce.sh 作為官方前端,並稱其可以「supercharge your queues」,描述其提供佇列總覽、任務檢查、搜尋、重試、提升延遲任務和指標。README 中沒有提到自託管 UI。(bullmq 5-1)

在 taskforcesh/bullmq 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taskforcesh/bullmq 的 README、master 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 bullmq 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 5)

taskforcesh/bullmq 第 5 節的入口還要和相鄰章節分開看:bullmq README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taskforcesh/bullmq 第 5 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 bullmq 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。bullmq README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

bullmq:列出的使用者、貢獻方式與 MIT 授權

README 列出了 Microsoft、Vendure、Datawrapper、Nest、Langfuse、Curri、Novu、NoCodeDB 和 Infisical 作為使用 BullMQ 的組織,並附上各自倉庫連結,但沒有描述它們的使用場景。貢獻說明是 fork 倉庫、修改、提交 pull request,另有 contributing.md 檔案提供更多細節。倉庫採用 MIT 授權,版權歸 2018 BullForce Labs AB 和貢獻者所有。授權授予使用、複製、修改、合併、發布、散布、再授權和銷售副本的權利,並宣告軟體按原樣提供,不附帶任何擔保。README 還包含 Slack 徽章和部落格連結,但沒有提到支援服務或安全流程。README 中的贊助商部分還重點介紹了 DragonflyDB,稱其為兼容 BullMQ 的 Redis 替代品。(bullmq 6-1)

在 taskforcesh/bullmq 的脈絡中,這一節只能由 README 已列出的入口來核對。請以 taskforcesh/bullmq 的 README、master 分支內容與 releases 頁面確認版本,再保留實際命令輸出、設定鍵和錯誤訊息。素材未說明的效能、相容性、故障恢復或安全保證,不應從專案描述、star 數或單一範例推導。若要驗證本節,應選取一個與 bullmq 直接相關的最小輸入,觀察輸出檔案、API 回應或終端日誌,並把成功與失敗結果分開記錄。(章節 6)

taskforcesh/bullmq 第 6 節的入口還要和相鄰章節分開看:bullmq README 明確寫出的命令、檔名或 API 只支持它所描述的範圍。執行時應保存輸入內容、程式版本和輸出結果,遇到錯誤則記錄完整訊息,不把一次成功執行延伸成所有平台都能成功。

taskforcesh/bullmq 第 6 節的採用邊界,取決於 README 具體列出的版本與執行條件。測試時先檢查 bullmq 的安裝入口是否成功,再逐項比對輸入、輸出和日誌;若需要外部服務、容器、憑證或特定作業系統,應把該條件寫入紀錄。bullmq README 沒有描述的行為仍屬未知,不能用相似工具的經驗代替。

編輯結論

BullMQ 是以 Redis 為基礎的佇列程式庫,為多種語言提供原生用戶端,並帶有 TypeScript 的 Queue、Worker 與 FlowProducer 範例,採用 MIT 授權。README 足以啟動一個最小佇列,但 PostgreSQL、效能基準與維運細節並未在 README 中說明。 適合能依 taskforcesh/bullmq README 管理相依環境、版本與輸出的人;不適合把 README 的功能清單當成未經條件限制的服務承諾。先執行 README 所列的最小命令或入口,核對 bullmq 的實際輸入、輸出、錯誤訊息與資料保存位置,再決定是否放入正式工作負載;MIT 授權下的再發布與修改責任也要由部署者依 LICENSE 原文確認。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記