Java ScheduledExecutorService with Hazelcast 在weblogic集群中执行任务
Java ScheduledExecutorService with Hazelcast to execute tasks in weblogic cluster
要求是
1. 从数据库中获取任务并为这些任务调用网络服务
2. 需要在 Weblogic 集群中执行此操作,其中 scheduler/executor 的单个实例应该 运行.
我们有 Hazelcast 支持,所以我正在考虑从 Hazelcast 获得 java ExecutorService。此 ExecutorService 将 "pick tasks from DB and execute web service call"。所以每个节点都要经过这个ExecutorService
这是正确的方法吗?
我主要关心的是不要在集群中进行重复调用
我不想使用 Quartz 调度程序的原因是我无法在 Hazelcast 中存储石英调度程序。
Hazelcast 不支持 ScehduledExecutorService。它有一个未解决的问题 here。
我认为,您应该使用队列:将任务放入该队列,并在每个节点上轮询该队列。您将确保只调用一次任务,然后工作将被分发。但是,这种实现并不是完全容错的。如果一个节点在任务执行过程中崩溃了,它就会丢失。
要求是 1. 从数据库中获取任务并为这些任务调用网络服务 2. 需要在 Weblogic 集群中执行此操作,其中 scheduler/executor 的单个实例应该 运行.
我们有 Hazelcast 支持,所以我正在考虑从 Hazelcast 获得 java ExecutorService。此 ExecutorService 将 "pick tasks from DB and execute web service call"。所以每个节点都要经过这个ExecutorService
这是正确的方法吗?
我主要关心的是不要在集群中进行重复调用
我不想使用 Quartz 调度程序的原因是我无法在 Hazelcast 中存储石英调度程序。
Hazelcast 不支持 ScehduledExecutorService。它有一个未解决的问题 here。
我认为,您应该使用队列:将任务放入该队列,并在每个节点上轮询该队列。您将确保只调用一次任务,然后工作将被分发。但是,这种实现并不是完全容错的。如果一个节点在任务执行过程中崩溃了,它就会丢失。