如何在群集中为一个节点和所有节点运行预定方法?
我有一个在集群和EJB 3.1应用程序中运行的Glassfish 3.1.2。 我的应用程序中需要两种计划方法:
- 一种每天只运行一次(在单个节点上)
- 和其他在所有节点上运行的类型(每1-2分钟) – 它们不需要运行同步方式! 要求只是在每个节点上运行。
我不知道如何从这个集群开始 – 问题,这可能是@Schedule
(以及如何)或者我还需要别的吗?
我遇到了完全相同的问题(需要一个cluster
计时器和per node
计时器)并遇到了这个问题。 所以,对任何有兴趣的人:
如果使用@Schedule(…,persistent = true)声明计时器,您将获得一个存储在计时器db中的cluster
计时器(可以迁移)
如果使用@Schedule(…,persistent = false)声明计时器,则会得到一个未存储在计时器db中的node
计时器(无法迁移)
你可以看一下使用JMS。 对于需要在单个节点上运行的方法,请使用队列,对于需要在所有节点上运行的队列,请使用主题。