FEAT: Adicionada a validação para que uma run do processAtendimento não sobreponha a outra
This commit is contained in:
parent
9019dbe58f
commit
b969e5875d
@ -8,6 +8,8 @@ const { logInfo, logError } = require('./utils/logger.js');
|
|||||||
|
|
||||||
const app = createApp();
|
const app = createApp();
|
||||||
|
|
||||||
|
let isCronRunning = false; // Variável de controle para evitar sobreposição
|
||||||
|
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
@ -16,12 +18,20 @@ app.listen(PORT, () => {
|
|||||||
// Agenda a tarefa para rodar a cada 5 minutos.
|
// Agenda a tarefa para rodar a cada 5 minutos.
|
||||||
logInfo('⏰ Agendando cron job para processar atendimentos a cada 5 minutos.');
|
logInfo('⏰ Agendando cron job para processar atendimentos a cada 5 minutos.');
|
||||||
cron.schedule('*/5 * * * *', async () => {
|
cron.schedule('*/5 * * * *', async () => {
|
||||||
|
if (isCronRunning) {
|
||||||
|
logInfo('CRON: Tentativa de início, mas o processo anterior ainda está em execução. Pulando esta rodada.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
isCronRunning = true;
|
||||||
logInfo('CRON: Iniciando processamento de atendimentos...');
|
logInfo('CRON: Iniciando processamento de atendimentos...');
|
||||||
try {
|
try {
|
||||||
await processaAtendimentos();
|
await processaAtendimentos();
|
||||||
logInfo('CRON: Processamento de atendimentos concluído com sucesso.');
|
logInfo('CRON: Processamento de atendimentos concluído com sucesso.');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logError('CRON: Erro durante o processamento de atendimentos.', error);
|
logError('CRON: Erro durante o processamento de atendimentos.', error);
|
||||||
|
} finally {
|
||||||
|
isCronRunning = false; // Garante que a trava seja liberada, mesmo em caso de erro
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user