30 lines
761 B
JavaScript
30 lines
761 B
JavaScript
|
|
import Redis from "ioredis";
|
|||
|
|
|
|||
|
|
// Verbindung zu Redis herstellen
|
|||
|
|
const redis = new Redis({
|
|||
|
|
host: "data_jobs", // Dein Redis-Containername
|
|||
|
|
port: 6379
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// Endlosschleife: Immer auf neue Jobs warten
|
|||
|
|
async function startWorker() {
|
|||
|
|
console.log("Worker gestartet – warte auf Jobs...");
|
|||
|
|
|
|||
|
|
while (true) {
|
|||
|
|
// BLPOP = Warte auf Job in der Queue "grist:jobs"
|
|||
|
|
const job = await redis.blpop("grist:jobs", 0);
|
|||
|
|
const payload = job[1]; // [0] = Queue-Name, [1] = Daten
|
|||
|
|
|
|||
|
|
console.log("Job empfangen:", payload);
|
|||
|
|
|
|||
|
|
// Ergebnis vorbereiten
|
|||
|
|
const result = `Bearbeitet: ${payload}`;
|
|||
|
|
|
|||
|
|
// Ergebnis in andere Queue schreiben
|
|||
|
|
await redis.rpush("grist:results", result);
|
|||
|
|
console.log("Ergebnis gespeichert:", result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
startWorker();
|