问题标签 [akka-fsm]

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 回答
62 浏览

scala - 如何使用akka fsm制作基于尺寸的节流器?

我有一个用例,一旦请求数量达到指定值,我必须使用 akka fsm 处理请求。

}

我尝试在添加请求的地方使用可变队列。在队列大小达到某个值后,即 2 同时处理这些请求。处理后,我将其出列。如果我发送 10 个请求,它将处理 8 个请求,但对于最后 2 个请求,它永远不会进入活动状态。在过渡期间,我没有得到我犯错误的地方。

任何帮助将不胜感激!

0 投票
0 回答
163 浏览

apache-spark - 火花流中的 AKKA FSM

我需要在我的 spark 流应用程序中创建状态机实现。在阅读了一些帖子后,发现 AKKA 带有开箱即用的 FSM。我创建了一个简单的 AKKA FSM,并且能够在本地运行它。我不确定如何将此代码集成到火花结构化流(mapGroupsWithState)中。我想使用这个 FSM 并插入 mapGroupsWithState,这样即使我的应用程序出现故障,我也可以存储最后一个状态。

0 投票
1 回答
61 浏览

lambda - AKKA FSM 是否支持 Java 7?

我正在学习 AKKA 使用其 JAVA API 提供的 FSM 框架,到目前为止,我遇到了使用 Java8 及更高版本支持的 Lambda 表达式的示例。Java 8 是必需的吗?我可以在 Java 7 中使用 FSM 吗?如果是,有什么我可以参考的例子吗?

0 投票
1 回答
612 浏览

java - 在有限状态机中更新数据

我将 FSM 框架与 AKKA 一起使用,并使用其 Java API 来管理状态转换。这是状态机的相关部分

这按预期工作,并且正确的状态更改发生在参与者身上。在onTansition()块中,我想更新 Service 对象,在这种情况下是有限状态机数据,如下所示

这可能吗?我是否以正确的方式使用这个框架?

我想我能够做类似以下的事情

我现在如何实际测试由于此转换而更改的数据?

测试看起来像这样

0 投票
1 回答
350 浏览

scala - akka FSM 的持久性

我在我的项目中使用 Akka FSM 并添加持久性。直接的解决方案是使用 Persistent FSM ( https://doc.akka.io/docs/akka/current/persistence-fsm.html )

但是在官方文档中存在警告Warning Persistent FSM is no longer actively developed and will be replaced by Akka Typed Persistence. It is not advised to build new applications with Persistent FSM.

但是没有示例如何为 FSM 参与者使用类型化持久性。我所看到的只是如何为 Typed Actors 使用类型化持久性。

有没有机会将 Typed Persistence 与 FSM 演员一起使用?

0 投票
1 回答
127 浏览

java - Akka FSM:如何编写测试用例来验证状态变化?

我正在使用 Akka FSM。我已经用 AbstractFSMWithStash. 但我不确定如何编写单元测试用例来验证参与者是否更改了其状态。Akka 是否提供任何方法来访问参与者的状态以进行单元测试?

我在https://doc.akka.io/docs/akka/current/fsm.html的文档页面上找不到太多内容。

0 投票
1 回答
179 浏览

scala - Akka 有限状态机以及如何对 Behaviors.unhandled 进行协议?

我有一个关于 Behaviors.unhandled 的问题,我知道 Akka 将未处理的消息发送到死信,并且使用以下配置它也会记录它

这在以下问题之前有争议Behaviours.unhandled并争论了 Akka 工作的典型方式,这是可以接受的,也应该只在 DEBUG 级别登录。

在这一点上,我的但来了,有限状态机是 Akka 的另一层,在有限状态机概念中,这种情况与未设计的处理转换有关,正如问题的原始海报所声称的那样,这是一个在迭代方法中非常重要的错误设计有限状态机。

对于 Akka FSM,典型的 FSM 配置将如下所示,

现在,如果令我们惊讶的是,如果用户设法在 NEW 状态期间生成 onUserDoubleClicked(payload) 事件,那么这是我们这边的设计错误。

问题是,我们大多数人不会在生产环境中以 DEBUG 级别运行我们的应用程序,如果我们在生产环境中遇到未处理的转换,我们将永远不会发现这一点并在下一次迭代中修复。

为了能够跟踪这一点,我们必须订阅 Dead Letters 根本不会传递给 FSM 概念......

出于这个原因,我认为即使这种情况对于普通 Akka 也是可以接受的,对于有限状态机概念,这种情况必须至少在 WARN 级别记录,或者必须提供配置选项来配置行为,或者您是否看到任何其他方式来实现这没有大量的代码混乱?

0 投票
1 回答
488 浏览

scala - 对象 testkit 不是包 akka 的成员

我正在尝试运行 Akka FSM 的示例代码,但遇到了一些错误

我的代码是这样的:

build.sbt 就像:

我正在遵循以下指南: https ://doc.akka.io/docs/akka/current/fsm.html ,但我无法运行此代码。

我怀疑我在 build.sbt 文件中做错了,但是经过一整天的搜索和尝试,我一无所获。同样的错误迫在眉睫,我想知道这里出了什么问题。