QueueEvents не запускаются с BullMQ с использованием Heroku Redis - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь реализовать очередь в 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" });

1 Ответ

0 голосов
/ 09 апреля 2020
const queueEvents = new QueueEvents("Paint", { connection: connection.duplicate() });

https://github.com/taskforcesh/bullmq/issues/173

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...