Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | /* eslint-disable no-restricted-syntax */ require('babel-register'); require('babel-polyfill'); const { parentPort } = require('worker_threads'); const { Op } = require('sequelize'); const moment = require('moment-timezone'); const databaseConnect = require('../../../config/database'); const { default: Totvs } = require('../../services/totvs'); // ######################################################## // JOB EXECUTADO PARA REENVIAR FILA INTEGRAÇÃO COM ERRO // ######################################################## // Funcao de envio de mensagem utilizada para logging function sendMessage(message = '') { if (parentPort) parentPort.postMessage(message); } const jobExec = async () => { sendMessage('Database connecting...'); const models = await databaseConnect.default(); const pendingQueues = await models.IntegrationQueue.findAll({ where: { status: { [Op.ne]: 200 }, }, }); if (pendingQueues && pendingQueues.length > 0) { for (const queue of pendingQueues) { if (queue.status === 999) { const today = moment().format(); const diff = moment(today).diff(queue.createdAt, 'minutes'); if (diff > 15) await Totvs.resyncQueue(queue, queue.createdUser); } else await Totvs.resyncQueue(queue, queue.createdUser); } } else { sendMessage('Nenhuma fila com erro!'); } sendMessage('Finished!'); }; (async () => { sendMessage('jobExec'); // funcao que executa o job await jobExec(); // processo necessario para informar a conclusao do job if (parentPort) sendMessage('done'); else process.exit(0); })(); |