【发布时间】:2012-10-16 13:17:30
【问题描述】:
我对 Akka 和 Scala 比较陌生,但我想使用 Akka 作为一个通用框架来收集来自各种 Web 工具和 cli 命令的信息。
我了解在 Actor 模型中的一般原则,非常希望不要让 Actor 阻塞。而对于 http 请求,还有异步 http 客户端(例如 Spray),这意味着我可以在 Actor 框架内异步处理请求。
但是,我不确定将 Actor 与现有的阻塞 API 调用(例如 scala ProcessBuilder/ProcessIO 库)结合使用时的最佳方法是什么。在发出这些 CLI 命令方面,我预计并发量相对较少,例如可能在 12 核机器上执行最多 10 个并发 CLI 调用。
让单个参与者管理这些 CLI 命令,将实际工作分配给根据需要创建的 Future 是否更好?或者仅仅维护一组由 PinnedDispatcher 支持的独立参与者会更干净吗?还是别的什么?
【问题讨论】: