2025-09-07 17:03:07 +02:00
|
|
|
|
const Redis = require("ioredis");
|
2025-09-06 11:45:17 +02:00
|
|
|
|
|
|
|
|
|
|
// 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();
|