diff --git a/abstract/IEvent.go b/abstract/IEvent.go new file mode 100644 index 0000000..b3f843f --- /dev/null +++ b/abstract/IEvent.go @@ -0,0 +1,72 @@ +// Package abstract ... +// +// Description : abstract ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-03-11 12:02 +package abstract + +import "git.zhangdeman.cn/zhangdeman/event/define" + +// IEvent 事件接口定义 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 19:08 2023/8/14 +type IEvent interface { + // Construct 初始化事件实例 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:04 2024/3/11 + Construct() error + // SendEvent 发送事件 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:04 2024/3/11 + SendEvent(eventTData *define.EventData) (map[string]interface{}, error) + // SendFailCallback 发送失败的回调方法 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:08 2024/3/11 + SendFailCallback(eventTData *define.EventData, err error) + // SendSuccessCallback 发送成功的回调 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:08 2024/3/11 + SendSuccessCallback(eventTData *define.EventData, err error) + // ConsumeEvent 消费事件 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:05 2024/3/11 + ConsumeEvent() (<-chan *define.EventData, error) + // ConsumeFailCallback 消费失败的回调, eventData 可能为 NIL + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:09 2024/3/11 + ConsumeFailCallback(eventData *define.EventData, err error) + // ConsumeSuccessCallback 消费成功的回调 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:10 2024/3/11 + ConsumeSuccessCallback(eventData *define.EventData) + // Destroy 事件实例销毁时, 执行的方法 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:05 2024/3/11 + Destroy() + // GetDriverType 获取驱动类型 + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 12:06 2024/3/11 + GetDriverType() string +} diff --git a/define/consts.go b/define/consts.go new file mode 100644 index 0000000..d22c369 --- /dev/null +++ b/define/consts.go @@ -0,0 +1,14 @@ +// Package define ... +// +// Description : define ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-03-11 12:06 +package define + +const ( + DriverTypeEtcd = "ETCD" // etcd驱动 + DriverTypeKafka = "KAFKA" // kafka驱动 + DriverTypeREDIS = "REDIS" // redis驱动 +) diff --git a/define/data.go b/define/data.go new file mode 100644 index 0000000..773c68f --- /dev/null +++ b/define/data.go @@ -0,0 +1,22 @@ +// Package define ... +// +// Description : define ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-03-11 11:40 +package define + +// EventData ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:41 2024/3/11 +type EventData struct { + EventType string `json:"event_type"` // 事件类型 + TraceID string `json:"trace_id"` // 事件追踪ID + Host string `json:"host"` // 触发事件host + Timestamp int64 `json:"timestamp"` // 触发时间,纳秒级时间戳 + SystemTimestamp int64 `json:"system_timestamp"` // 发送时的系统时间 + Data interface{} `json:"data"` // 发送的数据 +}