UNPKG

reiso

Version:
104 lines 6.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const QueueRaw = require("bull"); const Log = require("../Modules/Log"); const Config_1 = require("../Modules/Config"); exports.scope = {}; function Queue(name, scope = 'Main') { return new QueueRaw(name, { redis: Config_1.getConfig().redisHandler[scope] }); } exports.Queue = Queue; function getQueues() { let arr = []; for (let sc in exports.scope) { for (let name in exports.scope[sc]) { arr.push(new QueueRaw(name, { redis: Config_1.getConfig().redisHandler[sc] })); } } return arr; } exports.getQueues = getQueues; function clearModel() { exports.scope = {}; } exports.clearModel = clearModel; function getQueuesArena() { let arr = []; for (let sc in exports.scope) { for (let name in exports.scope[sc]) { arr.push(Object.assign({ name, hostId: sc }, Config_1.getConfig().redisHandler[sc])); } } return arr; } exports.getQueuesArena = getQueuesArena; function RegisterHandler(opt, func) { if (!exports.scope[opt.scope || 'Main']) exports.scope[opt.scope || 'Main'] = {}; exports.scope[opt.scope || 'Main'][opt.name] = { count: opt.count || 1, description: opt.description, process: func }; } exports.RegisterHandler = RegisterHandler; class HandlerManager { constructor(name = 'Main') { this.jobs = {}; this.name = name; this.jobs = exports.scope[name]; } getHandler(name) { return this.jobs[name]; } async runHandler(j, job) { return await j.process(job); } hireHandler(j, name) { const processQueue = new QueueRaw(name, { redis: Config_1.getConfig().redisHandler[this.name] }); processQueue.process(j.count, async (job, done) => { try { let result = await this.runHandler(j, job); done(null, result); return result; } catch (e) { Log.logError(e, { name: name, scope: this.name, id: job.id, data: JSON.stringify(job.data), type: 'handler' }); done(e, null); } }); j.job = processQueue; } init(callback) { for (let name in this.jobs) { const job = this.getHandler(name); this.hireHandler(job, name); } if (callback) callback(this); } async cleanAll() { for (const name in this.jobs) { await this.jobs[name].job.empty(); } } async destroy() { for (const name in this.jobs) { await this.jobs[name].job.close(); } } } exports.HandlerManager = HandlerManager; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZXJ2ZXIvSGFuZGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFFakMsc0NBQXNDO0FBQ3RDLDhDQUE4QztBQUVuQyxRQUFBLEtBQUssR0FBb0QsRUFBRSxDQUFBO0FBRXRFLGVBQXNCLElBQVksRUFBRSxRQUFnQixNQUFNO0lBQ3hELE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO1FBQ3hCLEtBQUssRUFBRSxrQkFBUyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztLQUN2QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBSkQsc0JBSUM7QUFFRDtJQUNFLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUViLEtBQUssSUFBSSxFQUFFLElBQUksYUFBSyxFQUFFO1FBQ3BCLEtBQUssSUFBSSxJQUFJLElBQUksYUFBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzFCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUMxQixLQUFLLEVBQUUsa0JBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7YUFDcEMsQ0FBQyxDQUFDLENBQUM7U0FDTDtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBWkQsOEJBWUM7QUFFRDtJQUNFLGFBQUssR0FBRyxFQUFFLENBQUM7QUFDYixDQUFDO0FBRkQsZ0NBRUM7QUFFRDtJQUNFLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUViLEtBQUssSUFBSSxFQUFFLElBQUksYUFBSyxFQUFFO1FBQ3BCLEtBQUssSUFBSSxJQUFJLElBQUksYUFBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzFCLEdBQUcsQ0FBQyxJQUFJLGlCQUNOLElBQUksRUFDSixNQUFNLEVBQUUsRUFBRSxJQUNQLGtCQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFB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