问题描述
在典型的管道方案中,假设我有一个有界流,我从文件中读取该流。在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()
它将等待直到作业完成。