TimerService, como abusar de seu uso?

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

[code]@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”);
}
[/code]

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

Alguém? :?

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