我有一个方法,如果有新元素的请求,则使用poll方法从不同的源获取元素。如何从此方法创建源,以便它只从轮询方法请求新元素?
答案 0 :(得分:1)
在akka.io博客文章中解释了与轮询API的集成:unfoldAsyncResource
在“基于轮询的API”部分中。
在它的核心,你需要扩展TimerGraphStageLogic
,并执行以下操作:
private void schedulePoll() {
scheduleOnce("poll", pollInterval);
}
@Override
public void onTimer(Object timerKey) {
if (!isClosed(out)) {
doPoll();
if (!buffer.isEmpty()) {
pushHead();
} else {
schedulePoll();
}
}
}
安排投票。
或者,您可以坚持在here内实施所有回调。
可以找到{{3}}的完整实现(在Java中实现)。