【发布时间】:2018-10-20 03:16:57
【问题描述】:
我正在开发一个接受用户输入并使用集群对输入进行并行计算的网络应用程序。 Akka-cluster 用于促进这一点。
我目前正在使用 Play Framework 来管理我的网络应用程序中的 HTTP 请求。由此,我正在考虑将用户输入提交给前端 Akka 参与者,该参与者将请求转发给多个后端参与者以并行计算中间结果。然后我有另一个演员在最终将最终结果返回给用户之前聚合中间结果。每次计算可能需要几分钟到一个小时。 (我从this example得到了使用前端和后端actor的想法)
我担心的是,前端参与者必须接受每个用户的请求并给出工作的进度报告。我的第一个想法是使用“询问”模式,但我认为这不是正确的方法,因为这意味着一次只能有一个用户作为服务器。所以我目前正在考虑使用异步“告诉”来服务请求。
我的问题是:这是解决问题的正确方法吗?如果我使用“tell”,那么当作业完成时如何通知用户?另外,由于我使用的是 Play Framework,是否可以将前端 Actor 与 Play 集成以显示网页的更新?
【问题讨论】:
标签: scala playframework architecture akka actor