我有一项任务要在点火集群中的一个节点上连续运行。当任务完成或失败时,应在最旧的节点上再次启动它。我该怎么办?
class MyTask {
@PostConstruct()
public void start() {
ignite.executorService(ignite.cluster().forOldest())
.submit(() -> myTask());
}
}
答案 0 :(得分:3)
您可以使用最旧节点的过滤器启动单例Ignite服务(https://apacheignite.readme.io/docs/service-grid)。这将保证故障转移的安全性。
在服务内部的“执行”方法中,您可以在启动任务时使用while循环。使用它,您可以处理任务的完成和失败,然后重新启动。