Função para mandar e-mails(Thread)em projeto web, onde inicializar?

2 respostas
rockstorm

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

2 Respostas

sergio.souza

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/)

sergiotaborda

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

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

Criado 17 de janeiro de 2008
Ultima resposta 17 de jan. de 2008
Respostas 2
Participantes 3