Verificação em tempo real

Bom dia,
Sou novo no desenvolvimento de aplicações e desenvolvendo surgiu uma dúvida que não estou conseguindo prosseguir.
Desenvolvi um sistema de cadastro de documentos. Mas como funciona? É o seguinte, a pessoa entra com seu login e senha e cadastra seus documentos, existem 4 tipos de documentos e cada um deles é cadastrado em tabelas diferentes do banco de acordo com o tipo (uso Netbeans 8.1 e pgadmin III). Nesse cadastro, todos os documentos possuem data de vencimento e a minha dúvida é a seguinte:
Eu desenvolvi no Netbeans uma classe que calcula a data_de_hoje - data_vencimento do documento, esse calculo é baseado na data de hoje e na data de vencimento do documento, se a data de hoje e a data de vencimento tiver a diferença de menos de 35 dias, ele deverá disparar um e-mail informando que o documento tal está pra vencer. Como posso fazer com que o banco faça essa verificação mesmo com o sistema fechado? Pois terá dias em que não vai ter documentos para cadastrar, então o sistema nem sera aberto e então não fará a verificação. Tem a possibilidade de um agente para ficar fazendo esses disparos? Como posso criar um agente já que sou iniciante. Preciso de um norte pois estou totalmente perdido nesta parte.

Obrigado desde já.

Amigo, você pode criar um serviço que execute essa verificação ou mesmo um aplicativo que rode em segundo plano que faça essa verificação uma vez ao dia em um certo horário.

O aplicativo também pode ser executado por uma tarefa agenda do windows por exemplo.

1 curtida

Você tem a opção de criar um job no banco de dados ou, como creio ser mais viável, criar uma aplicação batch que faça essa análise e proceda com o envio de emails, de maneira transparente ao usuário.

Uma vez fiz uma tarfa para agendar a execução de um script, pesquise sobre agendador de tarefas do windows, faça um .bat rodar um programa seu verifique essas datas e mande o email, dá a té para fazer esse .bat rodar um .jar ou qualquer outra tecnologia que você usa.

De primeiro pensei em algo assim:
Criar um arquivo .bat que execute um arquivo .jar.
Nesse arquivo um sistema que faça as conexões com o banco e as verificações e também o envio dos e-mails. Porém, na parte prática, não sei como deixar esse sistema rodando em segundo plano, ou seja, escondido …
Existe uma forma de fazer isso?

Se o sistema operacional do seu cliente for Windows, o mais profissional é usar Windows Service com C#.

não precisa deixar em segundo plano, o agendador do windows vai executar o .bat na hora agendada, foi oque eu entendi da sua necessidade.

1 curtida

Para resolver seu problema de forma simples é agendar a tarefa agendada no windows, mas você precisa saber qual maquina que fica ligada todos os dias e também o horário que é garantido dela estar funcionando, como horário comercial, assim aumenta as chances de executar seu programa em quase 100%. Se a empresa trabalhar com um servidor, ai fica mais fácil ainda, pois geralmente essas maquinas nem são desligadas.