到目前为止,我的项目不使用var str = '<!-- A comment -->';
var newstr = str.replace(/<\!--(.*?)-->/, '$1');
console.log(newstr); // A comment
,它作为一个进程运行并执行太多操作。
作为第一个初始步骤,我们正在尝试将脚手架放置到位,以便我们获得Fault Tolerance。例如,
Akka
ProjectSupervisor
|
ExistingProcessActor
作为一个永久性的长期工作运行,如果由于某些ExistingProcessActor
而被杀,Exception
会ProjectSupervisor
我对此并不太确定,所以我在user-group询问,并收到了一个有趣的建议
[Me] def run:Unit = LogReaderDisruptor.main(Array())
是一种应该永远运行的方法,还需要一些设置(可在客户端的机器或测试环境中使用)[这里的建议]你做到了 意味着main()永远不会返回?如果是这样,那么你就会阻止 演员和浪费整个线程。在专用上产生这个 调度员(见调度员和期货文件)。
我浏览了文档,但没有理解我需要做什么。
这是否意味着以下?
restart
类型的自定义调度程序来启动新的future
吗? PinnedDispatcher
?他正在监控ProjectSupervisor
而非ExistingProcessActor
(future
不是future
)我很困惑,请指导我
答案 0 :(得分:1)
您不需要使用Future就可以在专门的调度员中完成工作。这可以通过生成一个actor并将该actor分配给专用调度程序来完成。 akka docs中的一个简单示例:
val myActor =
context.actorOf(Props[MyActor].withDispatcher("my-dispatcher"), "myactor1")
http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html
您可以在创建ExistingProcessActor
时在项目主管内执行此操作,将该角色放在固定调度员上,然后您的监督策略将继续按您的需要工作。