问题标签 [akka.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1221 浏览

c# - STA 中的 Akka.net 演员

我需要将数千个不同格式的 ms office 文档转换为一种通用格式。为了让事情变得更快,我会使用 akka.net 来并行化它。WordSaveAsActor 应该:

  • 在单线程公寓中运行
  • 持有 Word 应用程序实例
  • 在此实例上进行 COM 调用,例如 SaveAs(..) 使用来自多个并行线程的接收消息的路径
  • 因任何崩溃而重新启动

甚至可以在 STA 中运行 akka.net 演员吗?如果我以这种方式使用 akka.net,有什么顾虑吗?

0 投票
2 回答
1662 浏览

f# - 如何在 F# Akka.NET Actor 中存储状态?

在 C#ReceiveActor中,我可以将状态作为类中的私有字段。我应该如何使用 F# API 以惯用的方式执行此操作?

这是一个好主意吗?有什么选择吗?

0 投票
1 回答
3483 浏览

c# - 我需要与多个远程参与者系统通信

我正在使用 akka.Net 开发一个插件架构,其中包含一个或多个插件的每个 dll 都被加载到自己的AppDomain中,并且初始化一个新的参与者系统,准备从“主机”接收消息。

我试图让它与多个插件一起工作时变得不稳定。

所以主机配置看起来像:

插件配置如下所示:

(其中有很多)

我的问题是如何从主机获取消息到所有插件?

0 投票
1 回答
2520 浏览

c# - Akka.NET actors and wrappers (potentially with Rx)

I started playing with the Actor model, and in particular with Akka.NET. Overall I think I have a good idea of what's all about, but of course the devil is in the detail. I was thinking about adopting Akka.NET in an already existing codebase, and therefore I'd like to estimate how much of the existing abstractions can be kept. The idea is that some specific high-level interfaces could be kept, and some adapter implementations would be written to seamlessly go back and forth across the actors world and the users of the existing interfaces, but I'm not sure if that's recommended and what types of specific problems I should expect to face.

Trivial example:

In this case the IGetSet interface comes from the traditional world, and its implementation lets us transition back and forth with the actors world. I tried to be nice with actors, which are never used in ways different from message passing, so overall this (trivial, of course) exercise looks promising, but I'd like to know if there's anything more I should pay attention to since day 1.

I've been reading about avoiding additional non-actor-based async code taking closures on actors' state, that's clear and I'm not doing it, but maybe there's more which I can't see. My final goal is to use this pattern quite extensively, down to point I'd write actor-oriented implementations of Rx's ISubject (which BTW I already did and it was easy, but again I'm not sure I paid enough attention to all I should).

I also read a bit about Typed Actors, but I'm not a Scala expert so maybe I'm not grasping all the details from the code samples, and I'm not sure they are already available within Akka.NET (doc page is a 404)

0 投票
1 回答
585 浏览

akka - 使用 Akka 进行跨服务调用

我正在使用新发布的 Akka.Net 1.0(恭喜发布!)所以这对我来说都是新的,但我很确定任何有 JVM Akka 经验的人也可以加入,因为在问题。

让我们考虑几个(例如,2个)单独的服务,它们是更大的系统/应用程序的一部分。这些服务通常做自己的事情,但有时需要跨服务调用。假设它Service 2可以是独立的并且有一个GetStuff动作。Service 1有一个DoSomething动作,它必须首先得到GetStuff动作的结果。

当两种服务都可以单独部署到不同的机器上时,处理这种情况的首选方法是什么?

正如我所说,我对 Akka 了解不多,但是通过示例、文档和源代码挖掘,我发现了两个选项:

  1. 远程处理。在他们自己的服务中分离参与者系统,Remoting用于ActorSelection从远程主机获取。它与Remoting docs example几乎相同,只是两个参与者系统将是相等的“客户”。
  2. 聚类。我正试图解决这个问题,我现在能想到的最多的是设置一个单独的集群服务,它只是设置集群系统,创建一个简单的侦听器参与者,以便种子节点可以正确初始化(?)。然后在他们自己的服务中创建的每个单独的参与者系统将以不同的角色加入到所述集群系统中。

也许还有另一种我不知道的解决方案......?

就个人而言,集群解决方案乍一看似乎更难掌握和设置,但也许有一些我现在看不到的显着优势。

重申一下,处理这种情况的首选方法是什么,我应该注意什么?

0 投票
1 回答
354 浏览

f# - 是否可以从 F# 挂钩到 prestart 方法?

在当前的 v.1.0 版本的 Akka.NET 中,不可能将 FSM 方法与来自 F# API 的持久性结合起来。我想知道是否可以使用像这样的功能方法 http://bartoszsypytkowski.com/blog/2014/07/05/fsharp-akka-net/ 并同时挂钩演员的预启动方法。如果在 prestart 方法的执行期间可以从持久存储中读取,那将是实现某种“自定义”持久性的一种方式。

任何其他关于如何使用自定义持久解决方案的建议都非常受欢迎。

0 投票
3 回答
1101 浏览

performance - F# Akka.NET 代理同步时的性能优化

我正在尝试解决以下问题。我有一些实时运行的代理,具有几毫秒的大心跳,因此它们处理的操作顺序大多是确定性的(因为消息处理不是瓶颈)。

现在,我正在对不再有心跳的系统进行大量模拟(否则将需要几个世纪)——但我需要确保操作顺序得以保留。为此,我采用了以下解决方案:模拟器确保每个代理都处理了他的消息队列,方法是发布一个虚拟同步消息并在等待答案时阻塞。这确实适用于我的应用程序,但它所花费的时间并不直观 - 因为单线程实现会快一个数量级(我猜 - x 100 ish - 虽然我没有测试过)。

我已经隔离了一个显示问题的小测试,甚至尝试使用另一个库 akka.net

基本上,对于仅仅 100 万次同步,两者都需要大约 10 秒 - 而不是计算所涉及的任何内容,这是......不幸的。

我想知道是否有人遇到过同样的问题,是否有任何方法可以关闭开销,强制所有内容以单线程模式运行......这比停用所有 cpu 更好,但在 bios 中只有 1 - 或在没有代理的情况下编写整个系统的克隆。

任何帮助都非常感谢。

0 投票
1 回答
826 浏览

f# - 如何对 F# akka.net 中收到的消息类型进行模式匹配?

请参阅最后的编辑。

为新手问题道歉。我正在尝试使用 Akka.net 在 F# 中实现一些东西。我对 F# 很陌生,我只使用过 Scala 的 Akka。基本上,我试图在 Scala 中实现一些非常简单的东西,即让 Actor 根据它接收到的消息类型做不同的事情。

我的代码在下面,它是对从 akka.net 网站上提取的 hello world 示例的轻微修改。我相信我的代码的第一个问题是它确实记录了模式匹配而不是类型模式匹配,但是我无法编写没有编译错误的类型匹配...任何帮助将不胜感激。谢谢你。

编辑:错误是运行时错误,System.InvalidCastException,无法将字符串类型的对象转换为条目。

稍后编辑:我得到这个来处理这个变化,向下转换为对象:

现在这两行正常工作

第一个打印“不匹配的消息 abc”,第二个输出条目。

没有演员阵容,有没有更好的方法来解决这个问题?akka.net 有专门针对这种情况的东西吗?谢谢你。

0 投票
1 回答
316 浏览

c# - 如何在 C# 中创建活动对象模式 TypedActor

我是新手Akka.net,我想创建一个Active Objects模式TypedActor来连接我的actor代码和non-actor代码。

我在http://doc.akka.io/docs/akka/2.3.9/java/typed-actors.html阅读了 Java 文档

在上面的示例中, aTypedActor创建如下:

我想知道如何在C#. 我尝试在Akka.net文档中找到它,但TypedActor( http://getakka.net/docs/TypedActor ) 的链接不可用。并且没有找到等效的方法C#

有人可以帮忙吗?非常感谢!

0 投票
1 回答
2050 浏览

akka.net - 我如何等待 Akka.Net 中的所有工作完成?

我已经成功地将工作发送到一组演员来执行我的工作,但现在我想对所有工作人员返回的结果进行一些聚合。我怎么知道每个人都完成了?

我想出的最好办法是维护一组请求 ID 并等待该组变为零,但这似乎不优雅。