Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Cs Summary Reflection
提交
709ef60a
C
Cs Summary Reflection
项目概览
梦境迷离
/
Cs Summary Reflection
11 个月 前同步成功
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cs Summary Reflection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
709ef60a
编写于
10月 24, 2019
作者:
梦境迷离
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix Akka的信箱 finish,时间:2019-10-24 22:41:22
上级
d5a576ec
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
4 deletion
+9
-4
docs/_posts/2019-10-24-Akka-Actor的信箱与使用.md
docs/_posts/2019-10-24-Akka-Actor的信箱与使用.md
+9
-4
未找到文件。
docs/_posts/2019-10-24-Akka-Actor的信箱与使用.md
浏览文件 @
709ef60a
...
...
@@ -20,6 +20,8 @@ libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.5.26"
Akka的邮箱保存着发送给Actor的消息。通常,每个Actor都有自己的邮箱,但是使用BalancingPool,所有的路由器都将共享一个邮箱实例。
此处的邮箱与信箱意思等同,传递意思等同发送。
PS:利用邮箱缓存消息并非Actor模型自带的功能,而是Akka库的功能。
### 邮箱选择
#### Actor需要的消息队列类型
...
...
@@ -70,9 +72,11 @@ my-dispatcher {
2.
如果actor的Props包含邮箱选择(即在其上调用了WithMailbox),那么指定的此配置部分将描述要使用的邮箱类型(请注意,这需要是一个绝对配置路径,例如myapp.Special-mailbox,而不是嵌套在Akka命名空间中的相对路径)。
3.
如果dispatcher的配置部分包含mailbox-type key,则将使用相同部分来配置邮箱类型。
4.
如果Actor需要如上所述的邮箱类型,则将使用该要求的映射来确定要使用的邮箱类型;如果失败则将尝试dispatcher的(如果有的话)。
5.
如果dispatcher需要如上所述的邮箱类型,则
该要求的映射将用于
确定要使用的邮箱类型。
5.
如果dispatcher需要如上所述的邮箱类型,则
将使用该要求的映射来
确定要使用的邮箱类型。
6.
默认邮箱akka.actor.default-mailbox将被使用。
此处有点难以理解可能有偏差,可以参考英文理解,
[
官网文档
](
https://doc.akka.io/docs/akka/current/mailboxes.html
)
。我理解这里是一个优先级关系,但可能描述不太好理解,这里“该要求的映射应该是指配置中mailbox-requirement的值”。
#### 默认邮箱
如果未如上所述指定需要的邮箱,则使用默认邮箱。默认情况下,它是一个无边界邮箱,由java.util.concurrent.concurrentlinkedqueue支持。
...
...
@@ -95,6 +99,8 @@ akka.actor.default-mailbox {
Akka附带了许多邮箱实现,如下所示:
这些邮箱几乎都是无界且非阻塞的。
*
UnboundedMailbox(默认)
*
默认邮箱
*
实现:基于java.util.concurrent.ConcurrentLinkedQueue
...
...
@@ -145,7 +151,7 @@ Akka附带了许多邮箱实现,如下所示:
*
相同优先级消息的传递顺序是未定义的(与BoundedStablePriorityMailbox形成对比)
*
阻塞:若与mailbox-push-timeout-time不为0时一起使用则是,否则不是
*
有界性:是
*
配置名称:
"akka.dispatch.BoundedPriorityMailbox"
*
配置名称:
akka.dispatch.BoundedPriorityMailbox
*
BoundedStablePriorityMailbox
*
实现:基于akka.util.PriorityQueueStabilizer(封装了java.util.PriorityQueue)
*
阻塞:若与mailbox-push-timeout-time不为0时一起使用则是,否则不是
...
...
@@ -376,4 +382,4 @@ system.actorOf(props.withDispatcher("myCustomMailbox")) ! "bang"
assert
(
MyCustomMailbox
.
instance
.
getLastEnqueuedMessage
==
"bang"
)
```
可能会失败;您必须留出一些时间来通过并重试检查
\ No newline at end of file
可能会失败;您必须留出一些时间来通过并重试检查
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录