Verificar Movimentacao no sistema

5 respostas
L

Boa tarde…preciso criar um método que verifique a movimentacao no sistema,por exemplo: caso o sistema fique sem movimentação por 180 dias, deverá ser enviado o primeiro SMS de alerta para o cliente…entende!!!

a única coisa que eu cheguei a criar foi isso, mas travei não sei como prosseguir:/

//ultimo instante do dia Calendar calendar = new GregorianCalendar(); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); Date now = calendar.getTime();

?

5 Respostas

tveronezi

Se estiver usando JEE, de uma olhada no TimerService:
http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html
Exemplos: http://openejb.apache.org/examples-trunk/schedule-expression/README.html e http://openejb.apache.org/examples-trunk/schedule-methods/README.html

Se estiver usando Spring, dê uma olhada no Quartz:
http://www.mkyong.com/spring/spring-quartz-scheduler-example/
http://quartz-scheduler.org/

sergiotaborda

Não sei porquê vocês estão orientando a discussão para cronômetros. Estamos falando de 180 dias. 6 meses.
O que precisa é de um contador. Um contador que indique se houve ou não “atividade” no site. Por exemplo, num site publico bastaria importar os dados do google analitics ou os dados do próprio servidor apache e verificar se houve atividade no dia x.

Depois é simplesmente ter um robot que corre todos os dias e calcula os dias sem atividade andando para trás de hoje e incrementando quando encontrar um dia com atividade pára. Se o contador for maior que 180 lança o alerta.

Na prática em sites públicos é quase impossível que o site esteja sem atividade a menos que ele esteja fora do ar. Mas 6 meses para saber se está fora do ar é muito. 1 dia já seria muito. Para saber se o site está fora do ar existem programas específicos para isso que monitoram.

O único cronometro necessário é do robot, mas isso não é o maior problema aqui.

tveronezi

Pelo que eu entendi, o sistema deve mandar uma msg tipo “I miss you” para o usuário que ficar mais de 180 dias sem acessar o sistema. Pra isso o TimeService ou o Quartz funcionam muito bem.
É só criar uma task que rode uma ou duas vezes por dia, varrendo todos os usuários que tenham a data do último acesso com mais de 180 dias.

felipeguerra

Lita Mclean:
Boa tarde…preciso criar um método que verifique a movimentacao no sistema,por exemplo: caso o sistema fique sem movimentação por 180 dias, deverá ser enviado o primeiro SMS de alerta para o cliente…entende!!!

Creio que a pergunta está mal formulada…o que se entende de ‘sistema sem movimentação’?

A comunicação é via Socket, HTTP?

L
Bom, provavelmente eu esteja fazendo do jeito 'porco'.. mas fiz assim só de inicio(só p verificar se ele iria me trazr os dias certos):
Calendar initCalendar = new GregorianCalendar();
		initCalendar.add(Calendar.DAY_OF_YEAR, -180);
		initCalendar.set(Calendar.HOUR_OF_DAY, 0);
		initCalendar.set(Calendar.MINUTE, 0);
		initCalendar.set(Calendar.SECOND, 0);
		initCalendar.set(Calendar.MILLISECOND, 0);
		
		Calendar endCalendar = new GregorianCalendar();
		endCalendar.set(Calendar.HOUR_OF_DAY, 23);
		endCalendar.set(Calendar.MINUTE, 59);
		endCalendar.set(Calendar.SECOND, 59);
		endCalendar.set(Calendar.MILLISECOND, 999);
		
		Date initDate = initCalendar.getTime();
		Date endDate  = endCalendar.getTime();
	
		Query query = em.createQuery("select e from EwTransact e where e.dtTransact >= :initDate and e.dtTransact <= :endDate");
		query.setParameter("initDate", initDate);
		query.setParameter("endDate", endDate);

comecei assim apenas p ver se me trazia os dados, mas ainda tem que pegar os dados do cliente o id e etc.....

tveronezi qdo vc diz " criar uma task" esse task seria um servico(nao sei o nome certo) para 'ativar' esse meu método?

Criado 26 de julho de 2012
Ultima resposta 27 de jul. de 2012
Respostas 5
Participantes 4