要求是 1.从数据库中拾取任务并为这些任务调用Web服务 2.需要在Weblogic集群中执行此操作,其中只应运行调度程序/执行程序的单个实例。
我们有Hazelcast支持,所以我想从Hazelcast获取java ExecutorService。此ExecutorService将“从数据库中选择任务并执行Web服务调用”。因此,每个节点都必须通过此ExecutorService
这是正确的方法吗?
我主要担心的是不在群集中进行重复调用
我不想使用Quartz调度程序的原因是因为我无法在Hazelcast中存储石英调度程序。
答案 0 :(得分:0)
Hazelcast并不支持ScehduledExecutorService。它有一个未解决的问题here。
我认为,您应该使用队列:将任务放在此队列上,并在每个节点上轮询此队列。您确定只调用一次任务,然后分发工作。但是,这种实现并不是完全容错的。如果某个节点在执行任务期间崩溃,它将会丢失。