Eu tenho um Glassfish 3.1.2 que é executado em um cluster e um aplicativo EJB 3.1. E eu preciso de dois tipos de methods agendados no meu aplicativo:
Eu não tenho idéia de como começar com este cluster – problema, isso é possível com @Schedule
(e como) ou eu preciso de algo mais?
Eu enfrentei exatamente o mesmo problema (preciso de um timer de cluster
e um timer per node
) e me deparei com essa questão. Então, para quem estiver interessado:
Se você declarar o timer com @Schedule (…, persistent = true), você receberá um timer de cluster
armazenado no database do timer (que pode ser migrado)
Se você declarar o timer com @Schedule (…, persistent = false), você receberá um timer de node
não armazenado no database do timer (que não pode ser migrado)
Você poderia olhar para usar o JMS. Para o método que precisa ser executado em um único nó, use uma fila e, para aqueles que precisam ser executados em todos os nós, use um tópico.