【发布时间】:2015-10-25 10:23:20
【问题描述】:
不知道如何命名此线程,但将尝试用几行来解释问题。
我有一个命令需要计算所需日期范围的价格。为了计算它,系统需要单独获取每一天的价格(数据库、配置、缓存,从哪里来并不重要)。
我的建议是有一个 PriceRangeActor,它有一个 DailyPriceActor 池,并会向它们发送诸如 CalculateDailyPrice 之类的命令。
但是如何在 PriceRanceActor 中组装所有这些数据?
1。 有一些带有复杂键的大地图闻起来很香。那么如何确定范围是否完全计算?有没有更简单的方法?
2。 为每个命令创建新的 PriceRangeActor 并使用 ask pattern 查询 DailyPriceActors 列表?
【问题讨论】:
-
我会选择第二个选项。在这种情况下,未来的组合比显式消息交换要容易得多。
-
你为什么不创建一个演员链,每个演员都有每日价格,然后你沿着链条传递你的信息,每个演员都添加到结果中,最后一个 - 返回返回发件人 :-) 可能取决于范围有多大。
-
谢谢各位。 @kukido 但那样我将失去并行计算的可能性。
-
它看起来类似于书中有效的akka中的cameo pattern解决的问题。基本上都准备好后调用N个服务并聚合结果。我认为值得一看。