我有一个演员,创建如下:
Behaviors.setup { context =>
val greeter = context.spawn(HelloWorld.greeter, "greeter")
Behaviors.receiveMessage { message =>
val replyTo = context.spawn(HelloWorldBot.bot(greetingCounter = 0, max = 3), message.name)
greeter ! HelloWorld.Greet(message.name, replyTo)
Behaviors.same
}
}
我希望在Behaviors.receiveMessage
中处理信号消息(例如PostStop),并在文档中表示:
只有一个参数的Receive的简化版本--要处理的消息。当上下文已经可以通过其他方式访问时,如包装在设置中或类似的方式,这很有用。构造一个能够对传入消息和生命周期信号做出反应的参与者行为。从另一个actor(或者作为Akka.actor.typed.actorSystem的监护人)生成这个actor之后,它将在ActorContext中执行,该ActorContext允许访问系统、生成和监视其他actor等。处理下一个消息会导致可能与此消息不同的新行为。状态是通过返回一个新的行为来维护的,该行为持有新的不可变状态。
但是如何在Behaviors.ReceiveMessage
中实现生命周期信号呢?
以下是指向文档https://doc.akka.io/api/akka/current/akka/actor/typed/scaladsl/achaviors$.html#receiveMessaget:akka.actor.typed.scaladsl.Behaviors.receive[T]
因为ReceiveMessage[A]
只能在符合类型A
的消息上进行匹配,并且您无法声明包含PostStop
等系统消息的类型A
。相反,Akka-Typed有一个专用的ReceiveSignal
。
在您的示例中,您已经通过behavior.setup
捕获了共享上下文,您可以将Receivesignal
链接到消息行为中,作为相同行为的一部分:
Behaviors.setup { context =>
val greeter = context.spawn(HelloWorld.greeter, "greeter")
Behaviors.receiveMessage { message =>
val replyTo = context.spawn(HelloWorldBot.bot(greetingCounter = 0, max = 3), message.name)
greeter ! HelloWorld.Greet(message.name, replyTo)
Behaviors.same
}.receiveSignal {
case (context, PostStop) =>
context.log.info("behavior stopped")
Behaviors.same
}
#include <stdio.h> #include <signal.h> void handler(int sig); void handler(int sig) { signal(sig, handler); printf("Receive signal: %d\n", sig); } int main(void) { signal(SI
不想让用户浪费宝贵时间来填写身份信息?金数据可以帮你自动收集用户的微信昵称(以及头像)、性别、国家、省市以及 OpenID。 开启方法 进入表单「设置」 —— 「微信增强」,在页面上部选择「通过金数据公众号收集」或「使用自己的公众号收集」,如图 1 所示。 图1 收集用户微信信息 通过金数据公众号收集:这种情况下,用户将会看见金数据的微信公众号信息。 用户填表之前会提示是否授权金数据获取他的个人信
我可以禁用POM中的特定阶段:Maven生命周期中的禁用阶段。可以从命令行禁用test:是否可以从特定阶段开始mvn生命周期,例如只使用命令行选项编译?
本文向大家介绍微信小程序(四)应用生命周期详解,包括了微信小程序(四)应用生命周期详解的使用技巧和注意事项,需要的朋友参考一下 App() 函数用来注册一个小程序,注意必须在 app.js 中注册,且不能注册多个。 使用方式也跟Android中的Application中初始化一些全局信息以供使用。 方法: 应用生命周期代码: 相关文章: hello WeApp
本文向大家介绍Android接收和发送短信处理,包括了Android接收和发送短信处理的使用技巧和注意事项,需要的朋友参考一下 关于短信接收处理方面,当前已经有一些app做的比较好了,比如发给手机发验证码验证的问题,很多app在手机接收到验证码后,不需要输入,就直接可以跳过验证界面,这就是用到了对接收到的短信的处理。至于短信的发送,也没什么好说的了。在此也只是附上一个小实例。 效果图: MainA
注:本文档提供的生命周期指的是 Universal App 的生命周期,它依赖 rax-app 提供的 runApp方法。 App 级生命周期 launch 在 App 启动时触发 使用生命周期 你可以使用 rax-app 提供的 useAppLaunch 来注册 App 级别的生命周期。 示例: import { useAppLaunch } from 'rax-app'; useAppLa