【发布时间】:2015-09-05 05:38:56
【问题描述】:
我正在尝试为 Akka 实现 Java Aggregator,since it doesn't look like Java API 支持它们(为什么不!?)
这是我迄今为止最好的尝试:
// Groovy pseudo-code
abstract class Aggregator<T> extends UntypedActor {
ActorRef recipient
Set<T> aggregation
// TODO: Timer timer (?)
abstract boolean isAggregated()
@Override
void onReceive(Object message) {
aggregation << message as T
if(isAggregated()) {
recipient.tell(new Aggregation(aggregation)) // again, pseudo-code
aggregation.clear()
// TODO: timer.reset()
}
}
}
缺少的是某种Timer 构造,它将在Aggregator 尚未聚合的情况下在60 秒后超时。超时时,它应该抛出某种异常。在聚合时,应重置计时器。任何想法如何做到这一点?
【问题讨论】:
标签: java akka aggregation integration-patterns