在点火集群中一次运行一次任务

时间:2018-11-14 18:29:23

标签: ignite

我有一项任务要在点火集群中的一个节点上连续运行。当任务完成或失败时,应在最旧的节点上再次启动它。我该怎么办?

class MyTask {

    @PostConstruct()
    public void start() {
        ignite.executorService(ignite.cluster().forOldest())
                .submit(() -> myTask());
    }
}

1 个答案:

答案 0 :(得分:3)

您可以使用最旧节点的过滤器启动单例Ignite服务(https://apacheignite.readme.io/docs/service-grid)。这将保证故障转移的安全性。

在服务内部的“执行”方法中,您可以在启动任务时使用while循环。使用它,您可以处理任务的完成和失败,然后重新启动。