Я хотел бы обработать запланированные задания, используя node.js bull .В основном у меня есть два процессора, которые обрабатывают 2 типа заданий.Существует один конфигуратор, который конфигурирует задания, которые будут добавлены в очередь с использованием cron.
Планировщик будет находиться в одном микросервисе, а каждый процессор будет отдельным микросервисом.Так что у меня будет 3 микро услуги.
У меня вопрос, использую ли я правильный шаблон с быком?
index.js
const Queue = require('bull');
const fetchQueue = new Queue('MyScheduler');
fetchQueue.add("fetcher", {name: "earthQuakeAlert"}, {repeat: {cron: '1-59/2 * * * *'}, removeOnComplete: true});
fetchQueue.add("fetcher", {name: "weatherAlert"}, {repeat: {cron: '3-59/3 * * * *'}, removeOnComplete: true});
processor-configurator.js
const Queue=require('bull');
const scheduler = new Queue("MyScheduler");
scheduler.process("processor", __dirname + "/alert-processor");
fetcher-configurator.js
const Queue=require('bull');
const scheduler = new Queue("MyScheduler");
scheduler.process("fetcher", __dirname+"/fetcher");
fetcher.js
const Queue = require('bull');
const moment = require('moment');
module.exports = function (job) {
const scheduler = new Queue('MyScheduler');
console.log("Insider processor ", job.data, moment().format("YYYY-MM-DD hh:mm:ss"));
scheduler.add('processor', {'name': 'Email needs to be sent'}, {removeOnComplete: true});
return Promise.resolve()
};
alert-processor.js
const Queue = require('bull');
const moment = require('moment');
module.exports = function (job) {
const scheduler = new Queue('MyScheduler');
console.log("Insider processor ", job.data, moment().format("YYYY-MM-DD hh:mm:ss"));
scheduler.add('processor', {'name': 'Email needs to be sent'}, {removeOnComplete: true});
return Promise.resolve()
};
Будет три микросервиса:
- узел index.js
- узел fetcher-configurator.js
- узел процессор-configurator.js
Я вижу противоречивое поведение от быка.Иногда я получаю сообщение об ошибке Отсутствует обработчик процесса для типа задания