【发布时间】:2013-04-16 14:52:10
【问题描述】:
我们不久前设计了一个处理交易的软件架构。它是这样工作的:传入的事件,根据它们的类型,被翻译成Callable,然后根据事件类型运行到Executor。例如,“Event_A”类型被转换为EventAHandler(Callable),然后在Executor中运行。
我们现在必须支持交互式事件,即需要用户通过网络进一步输入的事件,这很慢。例如,对于新类型的事件,我们向用户呈现一个菜单并等待响应。如果我们遵循上述架构,即将每个事件转换为Callable,我们会占用等待用户响应的线程,这不是一个好主意。
我正在寻找让我们这样做的建议或建筑风格。我们需要每秒支持大约 10,000 个事件。如果可能的话,我想坚持使用 Executor Framework,并且不能更改系统以支持异步循环。
【问题讨论】:
-
Callable 暗示 Future 暗示 get() 阻塞。如果您正在构建真正的异步应用程序,则不需要 Callable。如果你真的使用 Callable,那么你的应用程序就不是完全异步的。
标签: java architecture executorservice