【发布时间】:2012-10-14 17:47:35
【问题描述】:
我正在尝试使用 Akka 来实现以下内容(我想我正在尝试以正确的方式使用 Akka):
我有一个系统,其中有 n 个资源侦听器。本质上,资源侦听器是一个实体,它将侦听输入资源并发布它所看到的内容(即轮询数据库、跟踪日志文件等)。
所以我想使用 Akka 演员来完成这些小工作单元(监听资源)。我注意到 Akka 给了我一个 t 线程的线程池,它可能少于侦听器的数量。对我来说不幸的是,从这些资源侦听器获取消息可能会阻塞,因此可能需要几秒钟、几分钟才能弹出下一条消息。
有没有办法暂停资源侦听器,以便将线程留给另一个参与者,我们稍后再讨论它?
【问题讨论】:
-
您可以编写一个 ping 资源侦听器并让侦听器休眠直到收到 ping 的 actor。
-
您是否打算在集合中显式注册 侦听器,并从您的资源代码中显式调用它们,例如在每个对象上调用
fireResourceEvent输入发布了一些东西? -
好吧,实际的资源逻辑更像是对资源的轮询,即在资源对象上调用 getMessage() 方法,然后发布该消息。所以resourceListener有-一个资源,不像resource listener是由resource通知的。