Об этом проекте

BullMQ — это высокопроизводительная распределенная очередь сообщений и библиотека пакетной обработки на основе Redis, предназначенная для Node.js, Python, .NET, Elixir, Rust и PHP. Она создана для исключительной стабильности и атомарности, что делает ее подходящей для производственных сред, требующих надежной фоновой обработки заданий. Библиотека предоставляет нативные реализации на нескольких языках, каждая из которых доступна как отдельный пакет: `npm install bullmq` для Node.js/Bun, `pip install bullmq` для Python, `cargo add bullmq-official` для Rust, `{:bullmq, "~> x.x"}` для Elixir, `dotnet add package BullMQ` для .NET и специальный пакет для PHP. Для других платформ доступен BullMQ Proxy. Основные функции включают зависимости родитель-потомок между заданиями через FlowProducer, что позволяет строить сложные деревья заданий с корневыми, дочерними и внучатыми заданиями в разных очередях. Дедупликация поддерживает как режимы устранения дребезга, так и ограничения частоты. Задания могут иметь приоритеты, быть отложенными, повторяться по расписанию и обрабатываться с настраиваемой степенью параллелизма. Ограничение скорости доступно на уровне очереди, а очереди можно приостанавливать и возобновлять. Атомарные операции обеспечивают согласованность данных, и все задания сохраняются в Redis. BullMQ также поддерживает глобальные события для мониторинга жизненного цикла заданий, таких как завершение и сбой. Доступен вариант изолированного рабочего процесса для изолированного выполнения заданий. Проект включает таблицу сравнения функций с другими решениями для очередей заданий, такими как Bull, Kue, Bee и Agenda, подчеркивая более широкий набор функций BullMQ. Официальный интерфейс доступен через Taskforce.sh, предоставляя профессиональную панель управления для проверки очередей, поиска и повторного запуска заданий, продвижения отложенных заданий, а также просмотра метрик и статистики. Проект является открытым исходным кодом с активным вкладом сообщества, а спонсоры включают DragonflyDB, замену Redis, совместимую с ним и оптимизированную для рабочих нагрузок BullMQ. Известные организации, использующие BullMQ, включают Microsoft (через Lage), Vendure, Datawrapper, NestJS, Langfuse, Curri, Novu, NocoDB и Infisical. Проект использует semantic-release для автоматического управления версиями и публикации.