Correcao ferias #23
@@ -138,9 +138,25 @@ export const enfileirarEmail = mutation({
|
||||
agendadaPara: args.agendadaPara,
|
||||
});
|
||||
|
||||
// O cron job processará emails automaticamente:
|
||||
// - Emails sem agendamento serão processados imediatamente (próxima execução do cron)
|
||||
// - Emails agendados serão processados quando a hora chegar
|
||||
// Processar imediatamente se não houver agendamento ou se o agendamento já passou
|
||||
const agora = Date.now();
|
||||
const deveProcessarAgora =
|
||||
args.agendadaPara === undefined ||
|
||||
args.agendadaPara <= agora;
|
||||
|
||||
if (deveProcessarAgora) {
|
||||
// Agendar envio imediato via action (não bloqueia a mutation)
|
||||
ctx.scheduler
|
||||
.runAfter(0, api.actions.email.enviar, {
|
||||
emailId: emailId,
|
||||
})
|
||||
.catch((error: unknown) => {
|
||||
const errorMessage = error instanceof Error ? error.message : String(error);
|
||||
console.error(`Erro ao agendar envio imediato de email ${emailId}:`, errorMessage);
|
||||
// Não falha a mutation se houver erro ao agendar - o cron pode processar depois
|
||||
});
|
||||
}
|
||||
// Emails agendados para o futuro serão processados pelo cron quando a hora chegar
|
||||
|
||||
return emailId;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user