Bull basiert auf Redis, die in seinem eigenen Prozess die Handhabung und das Einreihen von Daten für diese Jobs behandelt. Es handelt sich um eine leichte, robuste und schnelle Auftragsverarbeitungswarteschlange. Es verwendet redis für Persistenz, so dass die Warteschlange nicht verloren geht, wenn der Server aus irgendeinem Grund ausfällt.
die interne Implementierung des Jobs kann here
Das gleiche mit Kue-Modul ist, das eine Warteschlange Priorität Aufgabe ist durch redis Prozesse, für node.js. gebaut gesichert zu sehen Die Hintergrundaufgaben werden von Redis übernommen.
Das bedeutet, dass dieses Modul auf Redis externen Prozess angewiesen ist, der das Erstellen verschiedener Hintergrundjobs ermöglicht.
Job spezifische Ereignisse sind auf den Job-Instanzen über Redis PubSub gefeuert:
enqueue
der Job jetzt
promotion
Warteschlange wird der Auftrag aus verzögerten Zustand gefördert
progress
die Aufgabe des Fortschritts der Warteschlange von 0-100
failed attempt
Der Job ist fehlgeschlagen, hat aber noch weitere Versuche
failed
der Job ist ausgefallen und hat keine weiteren Versuche
complete
der Auftrag abgeschlossen
remove
der Job entfernt wurde
Die verzögerten Jobs mit Energie versorgt wird von Redis Queue, die/benachrichtigt die Rückrufe in dem Trigger zurück Modul.
Das ist sehr interessant, ich hatte keine Ahnung, bg Aufgaben von externen, nicht Knoten Prozess profitieren könnten. Und was sind die Fähigkeiten des Redis-Prozesses? Ist es ein Multiprozess? Gewinde? Ist es Single-Thread-begrenzt? –
Redis ist ein Open-Source- (BSD lizenziert), speicherinterner Datenstrukturspeicher, der als Datenbank, Cache und Nachrichtenbroker verwendet wird. –
Redis ist single-threaded mit epoll/kqueue und skaliert unbegrenzt in Bezug auf E/A-Parallelität. - @ antirez (Ersteller von Redis). http: // Stapelüberlauf.com/questions/21304947/redis-performance-on-a-multi-core-cpu –