【发布时间】:2011-03-19 03:31:35
【问题描述】:
在编写 Scala RemoteActor 代码时,我注意到了一些陷阱:
- 必须设置RemoteActor.classLoader = getClass().getClassLoader() 以避免“java.lang.ClassNotFoundException”
- 链接并不总是有效,因为“支持远程参与者的 NetKernel(负责远程转发消息的设施)可以在远程参与者的代理(更具体地说,代理委托)拥有有机会远程发送一条消息,指示本地出口。” (Stephan Tu)
- RemoteActor.select 并不总是返回相同的委托 (RemoteActor.select - result deterministic?)
- 通过网络发送委托会阻止应用程序正常退出 (RemoteActor unregister actor)
- 如果 RemoteActor.alive() 和 RemoteActor.register() 在动作之外使用,远程 Actor 不会终止。 (见 Magnus 的回答)
程序员还应该注意哪些其他陷阱?
【问题讨论】:
-
我目前正面临“RemoteActor.classLoader = ...”的陷阱,但即使我需要这行somewhere,我也不知道在哪里!谁能指出对此的解释?
标签: scala network-programming scala-2.8 actor remote-actors