假设我需要一个Scala
组件同时处理传入的请求并返回处理结果。还假设请求处理由几个步骤组成。其中一些步骤是资源和时间消耗,其中一些是 I/O 或 CPU 密集型等。
假设请求来自JVM内部,我将按如下方式设计组件:
- 演员“门面”是入口点:它接收请求并将结果发送给客户端。
- 演员“调度员”异步执行处理步骤
Futures
,包装步骤 - 步骤将他们的结果发送回“调度员”演员。它是通过
Future
回调实现的。 - 当请求处理完成时,“Dispatcher”将结果发送到“Facade”。
是否有意义?Scala中有这样一个组件的好例子吗?