Message Queue với Bull (NodeJS + TypeScript)
· 3 min read
Bull là một trong số các thư viện hỗ trợ message queue rất tốt trên NodeJS (bên cạnh RabbitMQ, Kafka, rsmq, agenda,...), và dựa trên Redis để lưu dữ liệu.
Message queue là giải pháp để giải quyết các vấn đề trong công nghệ, thường là backend:
- Xử lý background.
- Gửi thông tin theo hàng đợi.
- Xử lý đồng bộ, concurrency.
Bull là thư viện có thể giúp cả 3 vấn đề trên, và bản th ân cũng có 3 thành phần chính:
- Producer: Thành phần tạo ra các công việc (job) và ném chúng vào queue (hàng đợi).
- Consumer: Thành phần nhận việc từ queue.
- Listener: Thành phần lắng nghe các sự kiện diễn ra trong hàng đợi (completed, failed, stalled).