完善接口抽象 + redis实现

This commit is contained in:
2024-06-26 18:15:34 +08:00
parent 87b2742e36
commit 6f56ff3c4f
3 changed files with 159 additions and 47 deletions

View File

@ -12,6 +12,48 @@ import (
"git.zhangdeman.cn/zhangdeman/event/define"
)
// EventHandler 事件数据处理函数
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:08 2024/6/26
type EventHandler func(eventData *define.EventData) (map[string]any, error)
// SendFailCallback 发送事件失败的回调
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:31 2024/6/26
type SendFailCallback func(ctx context.Context, eventResult *define.SendResult)
// SendSuccessCallback 发送事件成功的回调
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:32 2024/6/26
type SendSuccessCallback func(ctx context.Context, eventResult *define.SendResult, err error)
// ConsumeFailCallbackHandler 时间处理成功回调
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:18 2024/6/26
type ConsumeFailCallbackHandler func(eventData *define.EventData, handleResult map[string]any, err error)
// ConsumeSuccessCallback 时间处理失败回调
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:20 2024/6/26
type ConsumeSuccessCallback func(eventData *define.EventData, handleResult map[string]any)
// PanicCallback panic回调, 根据不同异常类型, eventData / handleResult 均可能为nil
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:07 2024/6/26
type PanicCallback func(err any, eventData *define.EventData, handleResult map[string]any)
// IEvent 事件接口定义
//
// Author : go_developer@163.com<白茶清欢>
@ -23,44 +65,26 @@ type IEvent interface {
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:04 2024/3/11
SendEvent(ctx context.Context, eventData *define.EventData) (*define.SendResult, error)
SendEvent(ctx context.Context, eventData *define.EventData, sendSuccessCallback SendSuccessCallback, sendFailCallback SendFailCallback) (*define.SendResult, error)
// SendEventAsync 发送事件(异步)
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:58 2024/6/25
SendEventAsync(ctx context.Context, eventData *define.EventData)
// SendFailCallback 发送失败的回调方法
SendEventAsync(ctx context.Context, eventData *define.EventData, sendSuccessCallback SendSuccessCallback, sendFailCallback SendFailCallback)
// GetConsumeEventChan 或去消息消费的channel, 自行实现消费
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:08 2024/3/11
SendFailCallback(ctx context.Context, eventResult *define.SendResult)
// SendSuccessCallback 发送成功的回调
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:08 2024/3/11
SendSuccessCallback(ctx context.Context, eventResult *define.SendResult, err error)
// Date : 17:11 2024/6/26
GetConsumeEventChan() (<-chan *define.EventData, 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)
ConsumeEvent(handler EventHandler, successCallback ConsumeSuccessCallback, failureCallback ConsumeFailCallbackHandler) error
// Destroy 事件实例销毁时, 执行的方法
//
// Author : go_developer@163.com<白茶清欢>