Actor模型模式:限制并发运行actor的数量

时间:2010-11-30 10:59:43

标签: spring actor

我设计了一个基于actor模型模式的应用程序,它利用spring应用程序上下文事件作为传递消息的方式。 我有三层:

  1. 发出requesttransactionevent
  2. 发出dotransactionevent< - 应限制当前正在运行的事务数
  3. 发出donetransactionevent
  4. 第1层将请求保存到数据库(用于分布式arch。监控要求)并发出clientrequest层2接收它并且应该检查它运行的dotransactionevents的数量(发出并且不返回donetransaction)如果它有一个空闲槽它应该发出一个dotransaction,它也被声明为donetransactionevent的监听器。

    在没有同步方法或类似方法的情况下实现第2层的最优雅方式是什么,这里的技巧是它需要将layer1保存的请求参数拉到db以发出dotransactionevent。

1 个答案:

答案 0 :(得分:0)

您可以将dotransactionevents的集合视为一个队列,并拥有一组并行的队列处理程序,每个队列处理程序一次从队列处理一个项目。通过控制队列处理程序的数量,您可以控制正在运行的事务的数量,如您所述。