小编Lor*_*nix的帖子

如何从stdin获取actor消息?

我想知道是否有可能(以及如何)让akka actor从stdin接收消息.本质上,这个想法是将每行输入作为消息发送给演员,例如

> myprogram
DO X
DO Y
...
Run Code Online (Sandbox Code Playgroud)

然后让演员接收消息"DO X","DO Y"等.

有没有标准的解决方案来做到这一点?

我想有一种方法可以做到这一点:

spawn {
    while(in.available) {
        actor ! in.readLine
    }
}
Run Code Online (Sandbox Code Playgroud)

但是后来我会有两个演员(或者一个基于演员的任务和一个演员)并且我会使用阻止IO(顺便说一句,这对演员来说是安全的吗?)...而且,这使得它更难控制产卵块(例如杀死任务).

OP的进一步跟进

我有几个跟进,如果你允许我......

  1. 使用此解决方案是否有性能损失(即确实CamelServiceManager启动了很多事情?HTTP服务器等)?

  2. 给初学者一个很好的教程?我开始从官方的Akka文档中读取Camel,但它似乎比我现在拥有更多的Camel知识.举例来说,我无法弄清楚如何使用自定义java.io.InputStreamendpointUri.

scala actor akka

3
推荐指数
1
解决办法
1300
查看次数

标签 统计

actor ×1

akka ×1

scala ×1