[英]Deployment of Akka.net actors in separate processes
我開始學習Actor模型(使用Akka.net)並計划在當前項目中使用它。 我當前的任務是使用IFilter從不同的文件中提取文本。 IFilter是一組具有本機代碼的COM服務器。 有時它會掛起或處理收益太久。 我需要在這種情況下中止對問題文件的處理,並繼續在隊列中的下一個文件。 但我需要殺死整個過程以正確清理本機代碼。
另一個問題是生產力 - 在大多數情況下,我不能在一個進程中使用多個線程加載多個核心。 我懷疑IFilter里面有鎖。 但是,如果我運行我的測試應用程序的多個副本(它模擬多進程模式),我可以使用CPU的全部功能。
我的問題是: 如何在不同的流程中部署一些角色 ?
我發現可以通過這種方式在配置中指定actor的部署策略(來自Petabrige的講座樣本):
<akka>
<hocon>
<![CDATA[
akka {
actor {
deployment {
/charting {
# causes ChartingActor to run on the UI thread for WinForms
dispatcher = akka.actor.synchronized-dispatcher
}
}
}
}
]]>
</hocon>
</akka>
其他選擇是:
但我在這里找不到在單獨進程中部署的選項。
我該如何解決這個問題?
您可以使用Akka.Remote和Remote Actor Deployments來實現這一點 - 您可以通過這種方式將actor遠程部署到網絡中的其他進程中。 我在這里的答案中列出了一些步驟: 我需要與多個遠程演員系統進行通信
如果您想查看如何執行此操作的示例,請查看Akka.NET項目中的RemoteDeploy示例: https : //github.com/akkadotnet/akka.net/tree/dev/src/examples/RemoteDeploy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.