From 82785601dfbc0c18cab294766dbc3b87f6b8459e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Mon, 11 Mar 2024 12:10:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9F=BA=E7=A1=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AE=9A=E4=B9=89=20+=20=E6=8E=A5=E5=8F=A3=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abstract/IEvent.go | 72 ++++++++++++++++++++++++++++++++++++++++++++++ define/consts.go | 14 +++++++++ define/data.go | 22 ++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 abstract/IEvent.go create mode 100644 define/consts.go create mode 100644 define/data.go 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"` // 发送的数据 +}