AKKA事件机制
AKKA Event Bus
事件机制就用于当前运行环境,与集群环境不同,详细见AKKA 集群中的发布与订阅Distributed Publish Subscribe in Cluster
简单实现示例
package event import akka.actor.AbstractActor
import akka.actor.ActorRef
import akka.actor.ActorSystem
import akka.actor.Props
import akka.event.japi.LookupEventBus
import akka.japi.pf.ReceiveBuilder
import com.typesafe.config.ConfigFactory /**
* Created by: tankx
* Date: 2019/7/18
* Description: 事件与监听
*/
object EventBus : LookupEventBus<MyEvent, ActorRef, String>() {//参数(事件类型,订阅者类型,用于区分事件定义的类型) override fun classify(event: MyEvent): String {//用于区分不同事件(事件类型)
return event.type
} override fun publish(event: MyEvent, subscriber: ActorRef) {
subscriber.tell(event, ActorRef.noSender())
} //期望的事件类型的数量
override fun mapSize(): Int {
return 1000
} override fun compareSubscribers(a: ActorRef, b: ActorRef): Int {
return a.compareTo(b)
} } //订阅actor
class SubActor : AbstractActor() { override fun createReceive(): Receive {
return ReceiveBuilder.create().matchAny(this::receive).build()
} fun receive(msg: Any) { println("收到消息: $msg") } } fun main() { var system: ActorSystem = ActorSystem.create("system"); var eventActor = system.actorOf(Props.create(SubActor::class.java)) EventBus.subscribe(eventActor, "aaa")//(订阅者,事件类型)
EventBus.subscribe(eventActor, "bbb")
EventBus.subscribe(eventActor, "ccc")
EventBus.subscribe(eventActor, "ddd") EventBus.publish(MyEvent("aaa", "数据"))
EventBus.publish(MyEvent("bbb", "数据"))
EventBus.publish(MyEvent("ccc", "数据"))
EventBus.publish(MyEvent("ccc", "数据"))
}
AKKA事件机制的更多相关文章
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...
- tkinter事件机制
一.tkinter.Event tkinter的事件机制跟js是一样的,也是只有一个Event类,这个类包罗万象,集成了键盘事件,鼠标事件,包含各种参数. 不像java swing那种强类型事件,sw ...
- [解惑]JavaScript事件机制
群里童鞋问到关于事件传播的一个问题:“事件捕获的时候,阻止冒泡,事件到达目标之后,还会冒泡吗?”. 初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会 ...
- Atitit 数据库的事件机制--触发器与定时任务attilax总结
Atitit 数据库的事件机制--触发器与定时任务attilax总结 1.1. 事件机制的图谱1 2. 触发器的类型2 3. 实现原理 After触发器 Vs Instead Of触发器2 3.1. ...
- 深入浅出iOS事件机制
原文地址: http://zhoon.github.io/ios/2015/04/12/ios-event.html 本文章将讲解有关iOS事件的传递机制,如有错误或者不同的见解,欢迎留言指出. iO ...
- Java 事件机制
java事件机制包括三个部分:事件.事件监听器.事件源. 1.事件.一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,用于listener的相应的方法之中,作 ...
- Angular $scope和$rootScope事件机制之$emit、$broadcast和$on
Angular按照发布/订阅模式设计了其事件系统,使用时需要“发布”事件,并在适当的位置“订阅”或“退订”事件,就像邮箱里面大量的订阅邮件一样,当我们不需要时就可以将其退订了.具体到开发中,对应着$s ...
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
DOM事件流(event flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...
- DOM事件机制进一步理解
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
随机推荐
- Python - 基本数据类型 - 第二天
Python3 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型& ...
- Windows Server - 用tomcat部署finereport
原博地址:https://blog.csdn.net/qq_39019865/article/details/80969728
- react学习-react父组件给子组件传值与设置传值类型以及是否必传参数
react 父组件给子组件传参时,父组件直接在引入的子组件内写入要传递的参数即可 <HeaderComponent title={"传递的参数"}></Heade ...
- bugku——宽带信息泄露(RouterPassView 查看路由器配置信息)
题目地址:http://ctf.bugku.com/files/5986768ca8b96cead45aec16a88431b5/conf.bin 下载之后发现是个后缀名为bin的二进制文件,其实这个 ...
- Burp Suite渗透实战操作指南-上篇
Burp必备知识 在介绍功能之前有必要让大家了解一些burp的常用功能,以便在使用中更好的发挥麒麟臂的优势. 1.1 快捷键 很多人可能都没用过burp的快捷键吧,位置如下,不说话,如果不顺手可以自 ...
- iOS批量添加SDK自动打包GUI工具
背景 1.之前在给游戏开发商做SDK接入技术支持的时候,很多cp对iOS开发技术并不是很了解,对接SDK和打包都很迷糊,虽然我们根据他们的开发环境输出了不同的插件解决方案,这一步已经把接入SDK的复杂 ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
- Makefile 中各种函数列举(进行 ing)
1.wildcard : 扩展通配符 notdir : 去除路径 patsubst :替换通配符 举例:有文件 /a.c /b.c /home/a.c /home/b.c ...
- 如何让ThinkPHP支持模糊搜索
最近ytkah在做一个ThinkPHP的项目时发现了一个问题,搜索的功能只能检索出以*为开头的内容,不能检索出中间的词.例如:搜索包含6775的产品,搜索结果为空,而搜索000-6775 就有两个结果 ...
- arguments简单函数 求整数递加和
function add(n){if(n == 1) return 1;else return n + arguments.callee(n-1);alert(arguments.callee(1)) ...