Bull без Redis для управления очередью - PullRequest
1 голос
/ 14 июля 2020

Можно ли использовать Bull (для управления заданиями) без использования Redis?

код mu:

@Injectable()
export class MailService {
    private queue: Bull.Queue;
    private readonly queueName = 'mail';

    constructor() {
        this.queue = new Bull(this.queueName)
    }

    addTaskToQueue() {
        this.queue.process('send_mail',
            async (job: Bull.Job, done: Bull.DoneCallback) => {
                console.log('Send mail!');
                console.log(JSON.stringify(job.data));

                done();
            })
    }

    async send(year: number, month: number) {
        try{
            await this.queue.add('send_mail', {
                year,
                month
            });
            console.log('done');
        } catch(err){
            console.log(err);
        }

    }
}

после запуска моей консоли появляется эта ошибка:

{ Error: connect ECONNREFUSED 127.0.0.1:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 6379 }

////////////////////////////////////////////// /////////////////////////////////////////////

1 Ответ

2 голосов
/ 14 июля 2020

Bull построен на Redis, это его бэкэнд. Вы не можете использовать его без Redis. Вероятно, вы могли бы реализовать какую-то специальную систему, которая не требует чего-то вроде Redis с использованием Rx JS и некоторого управления состоянием, но Bull должен иметь Redis.

...