zoukankan      html  css  js  c++  java
  • 3.Ray-Event编写

    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:该部分只介绍使用,高级部分在后面文档说明。

  • 相关阅读:
    python基础集结号
    3,jieba gensim 最好别分家之最简单的相似度实现
    2,PyAudio 实现录音 自动化交互实现问答
    1,百度云接口
    16,Flask-Migrate
    移动端web开发 尽量哪些标签 常用标签及注意事项
    flex布局
    -webkit-box
    网页图片jpg,gif,png对比。
    原生判断是否存在某个类,手机端事件,手机端测试
  • 原文地址:https://www.cnblogs.com/CharlesZHENG/p/8343088.html
Copyright © 2011-2022 走看看