Was macht bullmq-specialist?
BullMQ-Experte für Redis-gestützte Job-Warteschlangen, Hintergrundverarbeitung und zuverlässige asynchrone Ausführung in Node.js/TypeScript-Anwendungen.
Übersicht
Dieser Skill bietet tiefgehendes Wissen zu BullMQ, einer Bibliothek zur Verwaltung von Job-Warteschlangen mit Redis. Er hilft bei der Erstellung und Konfiguration von Warteschlangen, Workern und Verarbeitern für Hintergrundjobs.
Hauptfunktionen
- Job-Warteschlangen: Erstellen und Verwalten von Warteschlangen für verschiedene Aufgaben.
- Worker: Implementierung von Workern, die Jobs aus Warteschlangen verarbeiten.
- Job-Wiederholungen: Konfiguration von Wiederholungsversuchen bei Fehlern.
- Prioritäten und Verzögerungen: Festlegen von Job-Prioritäten und Verzögerungen.
- Scheduling: Planung von wiederkehrenden Jobs mit
QueueScheduler. - Job-Aliase: Verwaltung eindeutiger Job-IDs zur Vermeidung von Duplikaten.
- Pause und Fortsetzung: Steuerung der Warteschlangenausführung.
Verwendung
Installation
npm install bullmq ioredis
Grundlegende Konfiguration
import { Queue, Worker } from 'bullmq';
const myQueue = new Queue('my-queue', {
connection: {
host: 'localhost',
port: 6379,
},
});
const worker = new Worker('my-queue', async (job) => {
console.log(job.data);
}, {
connection: {
host: 'localhost',
port: 6379,
},
});
Job hinzufügen
await myQueue.add('my-job', { foo: 'bar' });
Wiederholungsversuche
await myQueue.add('my-job', { foo: 'bar' }, {
attempts: 3,
backoff: {
type: 'exponential',
delay: 2000,
},
});
Best Practices
- Verwenden Sie immer eine Redis-Cluster-Konfiguration für Produktionsumgebungen.
- Setzen Sie Job-Aliase (
jobId) ein, um doppelte Jobs zu vermeiden. - Konfigurieren Sie sinnvolle Wiederholungsversuche und Backoff-Strategien.
- Überwachen Sie Warteschlangengrößen und Job-Status.
- Nutzen Sie
QueueSchedulerfür wiederkehrende Aufgaben.
Fehlerbehandlung
worker.on('failed', (job, err) => {
console.error(`Job ${job.id} fehlgeschlagen:`, err.message);
});
Weitere Informationen
Siehe offizielle BullMQ-Dokumentation unter https://docs.bullmq.io.