运行 在 ignite 集群中一次执行一个任务

Run a task once at a time in the ignite cluster

我有一项任务要 运行 在 ignite 集群中的一个节点上持续进行。当任务完成或失败时,它应该在最旧的节点上重新启动。我该怎么做?

class MyTask {

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

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

在服务的 "execute" 方法中,您可以使用 while 循环启动任务。使用它,您可以处理任务完成和失败并重新启动它。