【发布时间】:2014-08-31 16:59:18
【问题描述】:
我有一个actor,它定期从另一个地方读取一些状态(比如说数据库)。现在我喜欢这样一个事实,即我可以向这个演员发送更多消息,例如“请立即更新”,或“请刷新我的只读状态”或“请重新启动自己”,并且它有一个内置的“调度程序”,就像 akka 提供的那样对我来说 + 它的收件箱。
所有这些功能都非常棒。但是我不喜欢我的整个系统有很多参与者(增加了我不需要的复杂性和可测试性复杂性)。现在我需要的只是它已更新的状态,所以我想让这个参与者像每 1 分钟一样替换一个共享的不可变全局状态,这对我和所有需要此状态的组件都可以直接访问此状态。没有理由将他们作为演员进行样板化,他们可以访问它。
在演员的帮助下,这听起来是简单与多线程的合理组合吗?
【问题讨论】:
-
“这个演员每 1 分钟替换一个共享的不可变全局状态”对我来说听起来不是很不可变 :)
-
他的意思是对象是不可变的,但是你可以用另一个不可变对象替换一个不可变对象
标签: multithreading scala akka actor