From be521422bbe502bc161f001d28283187b17a4159 Mon Sep 17 00:00:00 2001 From: Cleber Maia Date: Thu, 14 Sep 2017 15:09:16 -0300 Subject: [PATCH] MailConsumer: Criada fila para emails com status falha de envio --- server/lib/mailConsumer.coffee | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/server/lib/mailConsumer.coffee b/server/lib/mailConsumer.coffee index 037eb0b..5acd95d 100644 --- a/server/lib/mailConsumer.coffee +++ b/server/lib/mailConsumer.coffee @@ -143,7 +143,10 @@ mailConsumer.send = (record, cb) -> emailTemplates emailTemplateOptions, Meteor.bindEnvironment (err, render) -> if err? NotifyErrors.notify 'MailError', err - Konsistent.Models['Message'].update {_id: record._id}, {$set: {status: 'Falha no Envio', error: err}} + if record.status is 'Falha no Envio' + Konsistent.Models['Message'].update {_id: record._id}, {$set: {status: 'Não Enviada', error: err}} + else + Konsistent.Models['Message'].update {_id: record._id}, {$set: {status: 'Falha no Envio', error: err}} return cb() record.data ?= {} @@ -159,7 +162,7 @@ mailConsumer.send = (record, cb) -> mailConsumer.sendEmail record, cb mailConsumer.consume = -> - mailConsumer.lockedAt = Date.now() + mailConsumer.lockedAtFailed = Date.now() query = type: 'Email' status: { $in: [ 'Enviando', 'Send' ] } @@ -170,6 +173,12 @@ mailConsumer.consume = -> options = limit: 10 + if (!mailConsumer.lockedAtFailed || Date.now()-mailConsumer.lockedAtFailed > 6 * 60 * 60 * 1000) #6 hours + query.status.$in.push('Falha no Envio') + lockedAtFailed = now() + return + + records = Konsistent.Models['Message'].find(query, options).fetch() if records.length is 0 setTimeout Meteor.bindEnvironment(mailConsumer.consume), 1000