TimerService, como abusar de seu uso?

2 respostas
T

Olá galera, seguinte estou usando o timerservice do EJB 3.1 e criando este tópico porque existem muitos tópicos do mesmo, mas falando a mesma coisa.

Até agora já tenho funcionando o seguinte

@Resource
	private SessionContext ctx;  //Não sei é melhor TimerService em vez de SessionContext aqui
	
	private Timer timer;
	
	public void criarTimer(long intervalDuration){
		tempoTotal = (int)intervalDuration;
		TimerConfig timerConfig = new TimerConfig();
		timerConfig.setInfo("Teste");
		
		TimerService timerService = ctx.getTimerService();
		
		timer = timerService.createSingleActionTimer(intervalDuration, timerConfig);
		
		
	}
@Timeout
	public void funcionei(){
		System.out.println("Funcionei");
	}

Até aí tudo bem, mas preciso de algumas dicas para fazer isso muitas vezes, para várias funções diferentes.
Resumindo. posso ter cerca de 30 métodos diferentes(com start em tempo diferentes). E ao mesmo tempo preciso estar checando quando tempo falta pra terminar, e preciso ter o usuário identificado em cada um deles;

Também gostaria de saber se cada usuário tiver uns 50 timerServices rodando, pode apresentar um problema de desempenho.

Se tiverem outro que não o TimerService para me apresentar, por favor. Só preciso que tenha precisão de + - 0,5segundos

Aqui está uma visão bem mais simples do que mais ou menos terei que ter no final;

http://auctionmonitor.icesoft.org/auctionMonitor/auctionMonitor.jsf

2 Respostas

T

Alguém? :?

W

Para esta sofisticação solicitada, utilizo há muito tempo o Quartz, porque ele não permite apenas agendas com períodos regulares, mas permite agendar de muitas maneiras um job.

Digamos que um job programado para executar em intervalos de 5 segundos demore 10 segundos para executar, neste caso, você pode ajustar o intervalo ou para maior segurança de não gerar um batalhão de threads e deixar lento seu sistema, ou pode implementar um tipo de job que não permite execução paralela.

O Quartz fica em: http://quartz-scheduler.org/

wiliamps

Criado 15 de novembro de 2012
Ultima resposta 16 de nov. de 2012
Respostas 2
Participantes 2