diff --git a/abstract/IEvent.go b/abstract/IEvent.go index b3f843f..8ebd7bb 100644 --- a/abstract/IEvent.go +++ b/abstract/IEvent.go @@ -7,7 +7,10 @@ // Date : 2024-03-11 12:02 package abstract -import "git.zhangdeman.cn/zhangdeman/event/define" +import ( + "context" + "git.zhangdeman.cn/zhangdeman/event/define" +) // IEvent 事件接口定义 // @@ -21,24 +24,31 @@ type IEvent interface { // // Date : 12:04 2024/3/11 Construct() error - // SendEvent 发送事件 + // SendEvent 发送事件(同步) // // Author : go_developer@163.com<白茶清欢> // // Date : 12:04 2024/3/11 - SendEvent(eventTData *define.EventData) (map[string]interface{}, error) + SendEvent(ctx context.Context, eventData *define.EventData) (*define.SendResult, error) + + // SendEventAsync 发送事件(异步) + // + // Author : go_developer@163.com<白茶清欢> + // + // Date : 15:58 2024/6/25 + SendEventAsync(ctx context.Context, eventData *define.EventData) // SendFailCallback 发送失败的回调方法 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:08 2024/3/11 - SendFailCallback(eventTData *define.EventData, err error) + SendFailCallback(ctx context.Context, eventResult *define.SendResult) // SendSuccessCallback 发送成功的回调 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:08 2024/3/11 - SendSuccessCallback(eventTData *define.EventData, err error) + SendSuccessCallback(ctx context.Context, eventResult *define.SendResult, err error) // ConsumeEvent 消费事件 // // Author : go_developer@163.com<白茶清欢> diff --git a/define/data.go b/define/data.go index 773c68f..2da5538 100644 --- a/define/data.go +++ b/define/data.go @@ -13,10 +13,22 @@ package define // // 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"` // 发送的数据 + 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 any `json:"data"` // 发送的数据 +} + +// SendResult 发送结果 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 15:56 2024/6/25 +type SendResult struct { + Data *EventData `json:"data"` // 发送的数据 + IsSuccess bool `json:"is_success"` // 是否发送成功 + FailReason string `json:"fail_reason"` // 失败原因 + Extension map[string]any `json:"extension"` // 扩展数据 }