Hazelcast Jet接收器上的“ onComplete”事件?

问题描述

在典型的管道方案中,假设我有一个有界流,我从文件中读取该流。在Jet中,有什么方法可以订阅“ OnComplete”事件,一旦将流写入接收器,该事件将被触发? 我似乎找不到这种选择。我想要下面的东西。

p.readFrom(fileSource)
 .writeto(Sinks.logger())
 .onComplete(doSomething()); 

Edit : 
Reference for the comment.

BatchStage stage = p.readFrom(source).map(transform);
 
stage.map(enrich)
        .writeto(Sinks.filesBuilder(folder1).build())
        .onComplete(doSomething1());
 
stage.map(enrich2)
.aggregate(...)
.writeto(Sinks.filesBuilder(folder2).build())
.onComplete(doSomething2());

解决方法

提交工作后:

JetInstance jet = ...
Job job = jet.newJob(p);

您可以检索与作业关联的CompletableFuture,然后等待其完成。或者,您可以致电

job.join();

等效于

job.getFuture().join()

它将等待直到作业完成。