Я пытаюсь реализовать очередь в NodeJS, используя BullMQ , но у меня возникают некоторые проблемы при работе с удаленным Redis (Heroku Redis или Redis Cloud).
В локальной системе все работает хорошо, но когда я пытаюсь использовать REDIS_URL , создается задание, но события не работают.
Вот код:
// test_job.js
import { Queue, Worker, QueueEvents } from "bullmq";
import IORedis from "ioredis";
import Dotenv from "dotenv";
Dotenv.config();
// Good
const connection = new IORedis(process.env.REDIS_URL || 6379);
// Good
const queue = new Queue("Paint", { connection });
// Good
const worker = new Worker(
"Paint",
async job => {
if (job.name === "cars") {
console.log(job.data.color);
}
},
{ connection }
);
/**
* BUG HERE: Events work in local but not when using a remote Redis (REDIS_URL)
*/
const queueEvents = new QueueEvents("Paint");
queueEvents.on("completed", jobId => {
console.log("done painting");
});
queue.add("cars", { color: "blue" });