Bom dia,
Estou com uma duvida, Criei uma thread que envia e-mails de alerta a cada 2 horas, mas preciso colocar isso em um projeto web.
Minha duvida seria onde iniciar esta thread??
Eu iria colocar na action inicial, mas toda hora que alguem logar no sistema vai disparar a thread novamente!! Isso funciona??
grato
Tipo…
Você poderia criar um array de horas = {…, 10, 12, 14, 16, …}
Onde um filtro fica testando se a hora do servidor é igual a alguma hora do seu array… e daí ele dispara…
Não se é a melhor alternativa… e se não estou enganado existe um framework para isso!
EDITANDO:
O framework é o Quartz (http://www.opensymphony.com/quartz/)
[quote=frosemberg] Bom dia,
Estou com uma duvida, Criei uma thread que envia e-mails de alerta a cada 2 horas, mas preciso colocar isso em um projeto web.
Minha duvida seria onde iniciar esta thread??
Eu iria colocar na action inicial, mas toda hora que alguem logar no sistema vai disparar a thread novamente!! Isso funciona??
grato[/quote]
A forma mais simples é criar um ServletContextListener e registrá-lo no web.xml. Assim, quando o wercontainer iniciar a aplicação a thread é inicializada. O mesmo listener permite desligar a thread quando o container for desligado.
Por outro lado o envio temporizado deve ser feito com um Timer ou um framework do mesmo estilo ( já foi referido o Quartz) e não usar threads directamente