Método automático

Bom dia,
Como posso fazer um método que execute uma vez ao dia e de forma automática, a ideia seria que o usuário cadastrasse uma data inicial e uma final e ao chegar nesta data final seria enviado um e-mail avisando que a data está vencida. Basicamente seria isso mas minha dúvida é fazer rodar esse método sem interação do Usuário de forma independente, estou usando jsf e primefaces

Para isso você geralmente utiliza um scheduler (um agendador de tarefas).

Existem frameworks em Java que fazem isso por você (como o Quartz)

Uma soluçao mais simples é criar um endpoint que aplique sua lógica de negócio e depois criar um cron job que chame esse endpoint com a frequência que quiser.

Um importante detalhe é garantir que esse endpoint possa ser chamado múltiplas vezes sem risco. Por exemplo, se eu chamar esse endpoint duas vezes, os usuários não receberão dois emails.

A ideia seria executar esse método uma vez ao dia ás 6:00 da manhã todos os dias, vou procurar alguma exemplo usando esses frameworks. Obrigado pela ajuda

Bom dia @waguener

Se voce estiver em um projeto Java EE, voce pode utilizar um EJB para fazer isso, tenho um post que mostra detalhadamente como fazer, confere:

Se estiver em um projeto Spring, da uma olhada:

Obrigado, vou olhar este exemplo também.