3.Ray-Event编写
Event作用:
- 存储事件数据。
IEventBase
K:是Actor的StateId的类型,可以是long、可以是string,Ray一般使用OGuid生成的字符串作为主键。编写Event继承IEventBase接口,Base部分如下:
public string Id { get; set; }public uint Version { get; set; }public string CommandId { get; set; }public DateTime Timestamp { get; set; }public string StateId { get; set; }public string TypeCode => this.GetType().FullName;
Id:- 含义:当前Event的Id。- 作用:标识当前Event。- 备注:不赋值时,Ray会自动赋值。Version:- 含义:Event的版本戳。- 作用:防止事件乱序。- 备注:Ray会自动赋值。CommandId:- 含义:当前Event的CommandId。- 作用:一个请求(Command)可能会引发多个Event,多个Event之间拥有相同的CommandId,多个Event通过CommandId建立联系。- 备注:不需要时默认为null。Timestamp:- 含义:当前Event的时间戳。- 作用:记录当前Event的发生时间,时间为UTC时间。- 备注:不赋值时,Ray会自动赋值。StateId:- 含义:Actor的Id。- 作用:记录引发事件的Actor的Id。- 备注:Ray会自动赋值。TypeCode:- 含义:事件的类型。- 作用:事件存储时会存储为二进制,重放时用于反序列化为对应的类型。- 备注:public string TypeCode => this.GetType().FullName。
- 特性说明
- ProtoContract:Ray默认使用ProtoBuf对Event序列化。
- Immutable:Actor之间使用的时候。
- Obsolete:事件过期时标记。
- 无参构造函数
- 作用:反序列化时用。
- 备注:必须写。
- 自定义属性与有参构造函数
- 自定义属性:Event中用到的参数。
- 有参构造函数:用于自定义属性的初始化。
- 事件过期
- 弃用事件标记为Obsolete。
- 新事件在业务逻辑上做兼容性处理。
API:该部分只介绍使用,高级部分在后面文档说明。
转载于:https://www.cnblogs.com/CharlesZHENG/p/8343088.html
3.Ray-Event编写相关推荐
- TcpSocket编程与Event编写学习的好例子
http://www.codeproject.com/cs/internet/ChatAsynchTCPSockets.asp A Chat Application Using Asynchronou ...
- Actor-ES框架:Actor编写-ESGrain与ESRepGrain
ESGrain 生命周期 Ray中ESGrain继承自Grain扩展了Grain的生命周期.Grain的生命周期参加文档附录:1-Grain生命周期-译注.md ESGrain重写了Grain的OnA ...
- 关于MGS4和XSI
关于MGS4和XSI 终于看到最爱的游戏<合金装备4>的一些开发资料了,虽然半懂不懂,不过依然看得很过瘾,地址发来,也给大家解解馋. <合金装备4>的诞生--次世代游戏项目技术 ...
- Newbe.Claptrap-一套以“事件溯源”和“Actor模式”作为基本理论的服务端开发框架...
本文是关于 Newbe.Claptrap 项目主体内容的介绍,读者可以通过这篇文章,大体了解项目内容. 轮子源于需求 随着互联网应用的蓬勃发展,相关的技术理论和实现手段也在被不断创造出来.诸如 &qu ...
- Newbe.Claptrap - 一套以 “事件溯源” 和“Actor 模式”作为基本理论的服务端开发框架...
本文是关于 Newbe.Claptrap 项目主体内容的介绍,读者可以通过这篇文章,大体了解项目内容. 轮子源于需求 随着互联网应用的蓬勃发展,相关的技术理论和实现手段也在被不断创造出来.诸如 &qu ...
- [Alpha] Scrum Meeting 2 - TEAM LESS ERROR
Scrum Meeting 2 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/04/21 会议地点:线上采用discord 会议任务:讨论有没有需要特别解释.注意或者修改的开发要 ...
- [Alpha] Scrum Meeting 8 - TEAM LESS ERROR
Scrum Meeting 8 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/05/05 会议地点:线上采用discord 会议任务:整合功能,做Alpha阶段最后的细节调整 进 ...
- [Alpha] Scrum Meeting 6 - TEAM LESS ERROR
Scrum Meeting 6 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/04/30 会议地点:线上采用discord 会议任务:讨论新的数据存储模式 进度情况 人员 任务 ...
- [Alpha] Scrum Meeting 7 - TEAM LESS ERROR
Scrum Meeting 7 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/05/01 会议地点:线上采用discord 会议任务:讨论新的数据存储模式 进度情况 人员 任务 ...
- [Alpha] Scrum Meeting 5 - TEAM LESS ERROR
Scrum Meeting 5 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/04/28 会议地点:线上采用discord 会议任务:继续开发,讨论有无新增需要注意的问题 进度情 ...
最新文章
- python中6 2是什么意思_python2.6中SyntaxError是什么错误?
- 低成本测距方案—单目深度估计
- 阿里云ECS——Linux连接错误[Read from socket failed: Connection reset by peer]解决方案
- window 查找 java 进程中占用cpu比较高的线程
- zookeeper伪集群部署
- python 字典类型问题_[ python ] 字典类型的一些注意问题
- latex python_怎么在 LaTeX 中排版 Python 代码?
- ios 短信验证码自动填充时总是被复制两遍
- python获取窗口控件属性_Python——tkinter窗口视窗的功能部件
- js cookie设置,获取,删除
- 【字体分享】适合寒露闪屏设计的字体有哪些?
- 在reader中勾选pdf复选框_Excel中设计具有可任意勾选复选框的操作方法
- PostgreSql增删改(与mysql差异)
- 蓝桥耐摔指数 JAVA暴解(摔手机)
- WebGoat8 M17 Password Reset 密码重置 答案、思路、题解
- 完美结合,10款提升编程能力的游戏项目
- 女子眉纤,额下现一弯新月;男儿气壮,胸中吐万丈长虹
- 从校训、企业文化到团队文化
- 用 Python 和 Numpy 实现音频数字指纹特征识别
- 中国省份毗邻关系JSON数据[相邻省份][所辖市级信息][行政区划]