package HelloAkkaJava; import java.io.Serializable; import java.util.concurrent.TimeUnit; import scala.concurrent.duration.Duration; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Inbox; import akka.actor.Props; import akka.actor.UntypedActor; public class HelloAkkaJava { public static class Greet implements Serializable { private static final long serialVersionUID = -7238696787881084470L; } /** * 谁发起的问候 */ public static class WhoToGreet implements Serializable { private static final long serialVersionUID = 6394090910686796569L; public final String who; public WhoToGreet(String who) { this.who = who; } } /** * 问候 */ public static class Greeting implements Serializable { private static final long serialVersionUID = 1883804227616246995L; // 问候内容 public final String message; public Greeting(String message) { this.message = message; } } /** * 接待员 */ public static class Greeter extends UntypedActor { String greeting = ""; public void onReceive(Object message) { if (message instanceof WhoToGreet) { greeting = "你好, " + ((WhoToGreet) message).who; } else if (message instanceof Greet) { // 发送当前问候返回给发送者 getSender().tell(new Greeting(greeting), getSelf()); } else { unhandled(message); } } } public static void main(String[] args) { // 创建系统 final ActorSystem system = ActorSystem.create("helloakka"); // 创建一个接待者 final ActorRef greeter = system.actorOf(Props.create(Greeter.class), "greeter"); // 创建一个收件箱 final Inbox inbox = Inbox.create(system); // 告诉“接待者”改变“问候”的消息 greeter.tell(new WhoToGreet("顾客"), greeter); // 问“接待员最新的“问候语”回复应该去的“actor-in-a-box” inbox.send(greeter, new Greet()); // 等待5秒,与“问候”消息的答复 Greeting greeting1 = (Greeting) inbox.receive(Duration.create(5, TimeUnit.SECONDS)); System.out.println("问候: " + greeting1.message); // 改变问候,问一遍 greeter.tell(new WhoToGreet("接待者"), ActorRef.noSender()); inbox.send(greeter, new Greet()); Greeting greeting2 = (Greeting) inbox.receive(Duration.create(5, TimeUnit.SECONDS)); System.out.println("问候收到的问候语: " + greeting2.message); // 打印出问候信息 ActorRef greetPrinter = system.actorOf(Props.create(GreetPrinter.class)); //立刻执行(每秒一次) system.scheduler().schedule(Duration.Zero(), Duration.create(6, TimeUnit.SECONDS), greeter, new Greet(), system.dispatcher(), greetPrinter); } /** * 问候打印机 */ public static class GreetPrinter extends UntypedActor { public void onReceive(Object message) { if (message instanceof Greeting) { System.out.println("问候打印机:" + ((Greeting) message).message); }else{ System.out.println("Other:"+message); } } } }
相关推荐
Akka-HTTP Hello World Akka-http的最小示例安装并运行$ ##### Tutorial Install/Run #####$ git clone https://github.com/allenhwkim/akka-http-helloworld.git$ cd akka-http-helloworld$ sbt compile run$ curl ...
play-akka-hello-world 演示 Akka actor 用法的简单项目。
Console.WriteLine("Hello {0}", greet.Who)); } } class Program { static void Main(string[] args) { //create a new actor system (a container for your actors) var ...
必需的 “Hello World” 使用案例和部署场景 Akka使用实例 概述 术语,概念 Actor系统 什么是Actor? 监管与监控 Actor引用,路径与地址 位置透明性 Akka与Java内存模型 消息传递可靠性 配置 Actors ...
使用Scala的Akka gRPC快速入门快速入门指南《的介绍了此示例Hello World示例说明了Akka gRPC的基础知识。 在30分钟内,您应该能够下载并运行示例,并使用本指南来了解示例的构造方式。Giter8模板它也可以用作带有...
学习目标 此示例旨在作为任何计划使用 Scala 和开发基于 actor 的Android 应用程序的起点。 其学习目标是: 使用 Scala 开发 Android ...Akka 演员 hello world 示例 James Earl Douglas 的 SBTB 2014 演讲 James Earl
Java Akka快速入门快速入门指南《的介绍了此示例Hello World示例说明了Akka的基础知识。 在30分钟内,您应该能够下载并运行示例,并使用本指南来了解示例的构造方式。 这将使您的脚湿透,并希望激发您更深入地探索...
它包括一个简单的 hello-world 风格的演示应用程序和一个 actor 引导类。 它的灵感来自 efleming969 的 。 然而,它的不同之处在于它使用 sbt 依赖项而不是设置 maven 存储库使用 sbt 0.12.x 和 xsbt-web-plugin ...
com.oracle.sec2.thread_objects.HelloAkka 如java线程不同,akka执行完成后是不会自动退出的,需要手动杀进程,一般我们也不需要自动退出【TODO 自动退出程序?】 #####使用Sleep方法暂停一个线程 任务:每四秒打印...
强制性的hello world示例: open Akkling use system = System.create " my-system " <| Configuration.defaultConfig () let aref = spawnAnonymous system <| props ( actorOf ( fun m -> printfn " %s " ...
Hadoop EchoSystem 演示: avro 级联 cassandra 紧缩 flink 水槽 giraph hadoop mahout tez zookeeper 中间件演示: kafka 弹性搜索 netty akka NoSQL 演示: mongodb neo4j redis riak 泰坦风暴与火花: 和来自官方...
这是一个“ Hello World”流示例(嗯,这次不是Hello World,而是处理一个非常简单的有界流)。 它显示了Akka流的基本概念:“源”,“接收器”和“物化器”。 ReactiveStreamsAkkaWithBuffer 这显示了背压和缓冲...
Akka远程“ Hello,世界”示例顾名思义,这是Akka远程演员的一个简单的“ Hello,world”示例。 它显示了如何创建本地角色,远程角色以及如何在它们之间发送消息。假设条件就此代码而言,我假设您了解以下内容: ...
聊天 使用 akka io 与广播服务器...当每个客户端启动时,您将看到随机生成的客户端 ID(例如Connecting to localhost/127.0.0.1:5555 with id 559 )并使用它以id message的形式id message (例如559 hello world )。
7使用akka构建高并发程序 7.1新并发模型:actor 7.2akka之helloworld 7.3有关消息投递的一些说明 7.6选择actor 7.5监督策略 7.4actor的生命周期 01 02 03 04 05 06 实战Java高并发程序设计(第2版)PPT模板全文共25...
播放Java的Hello World Web教程 要遵循本教程中的步骤,您将需要正确版本的Java和构建工具。 您可以使用任何Java构建工具来构建Play项目。 由于sbt利用了诸如自动重新加载之类的Play功能,因此本教程介绍了如何使用...
播放Java的Hello World Web教程 要遵循本教程中的步骤,您将需要正确版本的Java和构建工具。 您可以使用任何Java构建工具来构建Play项目。 由于sbt利用了诸如自动重新加载之类的Play功能,因此本教程介绍了如何使用...
播放Scala的Hello World Web教程要遵循本教程中的步骤,您将需要正确版本的Java和sbt。 该模板要求: Java软件开发人员工具包(SE)1.8或更高版本sbt 1.3.4或更高版本。 注意:如果您从以zip文件的形式下载了该项目...
是一阶库。 SBT配置: libraryDependencies + = " org.sangria-graphql " %% " sangria " % " <latest> " 您可以在此处找到使用akka-http和桑... 最简单的Hello World应用程序可能如下所示: import sangria . sche