首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果指定的参与者已经停止,是否会发送与scheduleOnce一起调度的消息?

如果指定的参与者已经停止,是否会发送与scheduleOnce一起调度的消息?
EN

Stack Overflow用户
提问于 2015-02-26 20:17:39
回答 1查看 754关注 0票数 1

我使用scheduleOnce安排一条消息

代码语言:javascript
运行
复制
val cancellableMessage = system.schedule.scheduleOnce(500 milliseconds, self, "hi")

然后,我运行了一个方法,在它的末尾,这样做:

代码语言:javascript
运行
复制
cancellableMessage.cancel()
context.stop(self)

我看到了一些关于调度消息的问题,比如Akka Scala actor scheduled message does not appear to fire,其中记录了一个死信,因为参与者被停止了。但这些都是反复出现的信息。如果我以上述方式使用scheduleOnce,我还会看到一个死信吗?Akka能够认识到,既然我想告诉self一条消息,后来我停止了self,它就不会传递消息了吗?

我担心的是,在我正确地取消它的发送之前,会发生500毫秒(因为有一个特定的点,我知道,无论如何,我都可以取消它),但是在我输入取消它的方法之后,就会产生死信。这不是一场灾难,但肯定令人不快。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-26 21:41:49

我相信,由于调度程序是在ActorSystem级别完成的,所以它不会检查消息的接收方。您可以想象,您的调度程序将self ! "hi"封装在可运行的内部,只需将运行程序提交给执行器,它就会盲目地执行。

因此,即使您的收件人已经死亡,该消息也将被发送到相应的ActorRef,并将在DeadLetter中结束。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28751942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档