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