Files
sgse-app/packages/backend/convex/crons.ts

70 lines
1.7 KiB
TypeScript

import { cronJobs } from 'convex/server';
import { internal } from './_generated/api';
const crons = cronJobs();
// Enviar mensagens agendadas a cada minuto
crons.interval(
'enviar-mensagens-agendadas',
{ minutes: 1 },
internal.chat.enviarMensagensAgendadas
);
// Processar fila de emails (incluindo agendados) a cada minuto
crons.interval('processar-fila-emails', { minutes: 1 }, internal.email.processarFilaEmails);
// Limpar indicadores de digitação antigos (>10s) a cada minuto
crons.interval(
'limpar-indicadores-digitacao',
{ minutes: 1 },
internal.chat.limparIndicadoresDigitacao
);
// Atualizar status de férias dos funcionários diariamente
crons.interval(
'atualizar-status-ferias',
{ hours: 24 },
internal.ferias.atualizarStatusTodosFuncionarios,
{}
);
crons.interval(
'expirar-bloqueios-ip-automaticos',
{ minutes: 5 },
internal.security.expirarBloqueiosIpAutomaticos,
{}
);
crons.interval(
'sincronizar-threat-intel',
{ hours: 2 },
internal.security.atualizarThreatIntelFeedsInternal,
{}
);
// Monitorar logs de login e detectar brute force a cada 5 minutos
crons.interval(
'monitorar-logs-login-brute-force',
{ minutes: 5 },
internal.security.monitorarLogsLogin,
{}
);
// Verificar e enviar notificações de alertas de banco de horas diariamente às 8h
crons.interval(
'verificar-alertas-banco-horas',
{ hours: 24 },
internal.pontos.enviarNotificacoesAlertasBancoHoras,
{}
);
// Verificar e executar varredura de documentação a cada hora (verifica configuração internamente)
crons.interval(
'verificar-varredura-documentacao',
{ hours: 1 },
internal.documentacaoVarredura.verificarEExecutarVarreduraAgendada,
{}
);
export default crons;