我试图在NodeJS中使用BullMQ实现队列,但在使用远程Redis (Heroku或Redis )时,我在生产中遇到了一些问题。
在本地,一切都运行良好,但当我尝试使用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" });发布于 2020-04-09 15:54:17
const queueEvents = new QueueEvents("Paint", { connection: connection.duplicate() });https://stackoverflow.com/questions/61092126
复制相似问题