Event作用:

  • 存储事件数据。
  1. IEventBase
    K:是Actor的StateId的类型,可以是long、可以是string,Ray一般使用OGuid生成的字符串作为主键。

  2. 编写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。
    
  3. 特性说明
    • ProtoContract:Ray默认使用ProtoBuf对Event序列化。
    • Immutable:Actor之间使用的时候。
    • Obsolete:事件过期时标记。
  4. 无参构造函数
    • 作用:反序列化时用。
    • 备注:必须写。
  5. 自定义属性与有参构造函数
    • 自定义属性:Event中用到的参数。
    • 有参构造函数:用于自定义属性的初始化。
  6. 事件过期
    • 弃用事件标记为Obsolete。
    • 新事件在业务逻辑上做兼容性处理。

API:该部分只介绍使用,高级部分在后面文档说明。

转载于:https://www.cnblogs.com/CharlesZHENG/p/8343088.html

3.Ray-Event编写相关推荐

  1. TcpSocket编程与Event编写学习的好例子

    http://www.codeproject.com/cs/internet/ChatAsynchTCPSockets.asp A Chat Application Using Asynchronou ...

  2. Actor-ES框架:Actor编写-ESGrain与ESRepGrain

    ESGrain 生命周期 Ray中ESGrain继承自Grain扩展了Grain的生命周期.Grain的生命周期参加文档附录:1-Grain生命周期-译注.md ESGrain重写了Grain的OnA ...

  3. 关于MGS4和XSI

    关于MGS4和XSI 终于看到最爱的游戏<合金装备4>的一些开发资料了,虽然半懂不懂,不过依然看得很过瘾,地址发来,也给大家解解馋. <合金装备4>的诞生--次世代游戏项目技术 ...

  4. Newbe.Claptrap-一套以“事件溯源”和“Actor模式”作为基本理论的服务端开发框架...

    本文是关于 Newbe.Claptrap 项目主体内容的介绍,读者可以通过这篇文章,大体了解项目内容. 轮子源于需求 随着互联网应用的蓬勃发展,相关的技术理论和实现手段也在被不断创造出来.诸如 &qu ...

  5. Newbe.Claptrap - 一套以 “事件溯源” 和“Actor 模式”作为基本理论的服务端开发框架...

    本文是关于 Newbe.Claptrap 项目主体内容的介绍,读者可以通过这篇文章,大体了解项目内容. 轮子源于需求 随着互联网应用的蓬勃发展,相关的技术理论和实现手段也在被不断创造出来.诸如 &qu ...

  6. [Alpha] Scrum Meeting 2 - TEAM LESS ERROR

    Scrum Meeting 2 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/04/21 会议地点:线上采用discord 会议任务:讨论有没有需要特别解释.注意或者修改的开发要 ...

  7. [Alpha] Scrum Meeting 8 - TEAM LESS ERROR

    Scrum Meeting 8 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/05/05 会议地点:线上采用discord 会议任务:整合功能,做Alpha阶段最后的细节调整 进 ...

  8. [Alpha] Scrum Meeting 6 - TEAM LESS ERROR

    Scrum Meeting 6 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/04/30 会议地点:线上采用discord 会议任务:讨论新的数据存储模式 进度情况 人员 任务 ...

  9. [Alpha] Scrum Meeting 7 - TEAM LESS ERROR

    Scrum Meeting 7 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/05/01 会议地点:线上采用discord 会议任务:讨论新的数据存储模式 进度情况 人员 任务 ...

  10. [Alpha] Scrum Meeting 5 - TEAM LESS ERROR

    Scrum Meeting 5 会议情况 进度情况 燃尽图 会议截图 会议情况 开展日期:2022/04/28 会议地点:线上采用discord 会议任务:继续开发,讨论有无新增需要注意的问题 进度情 ...

最新文章

  1. python中6 2是什么意思_python2.6中SyntaxError是什么错误?
  2. 低成本测距方案—单目深度估计
  3. 阿里云ECS——Linux连接错误[Read from socket failed: Connection reset by peer]解决方案
  4. window 查找 java 进程中占用cpu比较高的线程
  5. zookeeper伪集群部署
  6. python 字典类型问题_[ python ] 字典类型的一些注意问题
  7. latex python_怎么在 LaTeX 中排版 Python 代码?
  8. ios 短信验证码自动填充时总是被复制两遍
  9. python获取窗口控件属性_Python——tkinter窗口视窗的功能部件
  10. js cookie设置,获取,删除
  11. 【字体分享】适合寒露闪屏设计的字体有哪些?
  12. 在reader中勾选pdf复选框_Excel中设计具有可任意勾选复选框的操作方法
  13. PostgreSql增删改(与mysql差异)
  14. 蓝桥耐摔指数 JAVA暴解(摔手机)
  15. WebGoat8 M17 Password Reset 密码重置 答案、思路、题解
  16. 完美结合,10款提升编程能力的游戏项目
  17. 女子眉纤,额下现一弯新月;男儿气壮,胸中吐万丈长虹
  18. 从校训、企业文化到团队文化
  19. 用 Python 和 Numpy 实现音频数字指纹特征识别
  20. 中国省份毗邻关系JSON数据[相邻省份][所辖市级信息][行政区划]

热门文章

  1. 车载通信协议-列车实时数据协议(TRDP)
  2. IPWorks IPC .NET 2022.0.85 Crack
  3. Golang 匿名字段
  4. vod服务器系统,vod系统
  5. 通过两点经纬度信息 计算两点距离(C#语言)
  6. 台达DVP ES系列plc与3台台达MS300变频器通讯程序 实现频率设定,启停控制,实际频率读取等
  7. Vm14 中安装mac时出现如图情况是怎么回事?
  8. 大学计算机应用能力基础,大学计算机应用基础
  9. Win32 API概述
  10. 三维空间中的平面方程