// Package abstract ... // // Description : abstract ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2024-03-11 12:02 package abstract import ( "context" "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<白茶清欢> // // Date : 19:08 2023/8/14 type IEvent interface { // SendEvent 发送事件(同步) // // Author : go_developer@163.com<白茶清欢> // // Date : 12:04 2024/3/11 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, sendSuccessCallback SendSuccessCallback, sendFailCallback SendFailCallback) // GetConsumeEventChan 或去消息消费的channel, 自行实现消费 // // Author : go_developer@163.com<白茶清欢> // // Date : 17:11 2024/6/26 GetConsumeEventChan() (<-chan *define.EventData, error) // ConsumeEvent 消费事件 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:05 2024/3/11 ConsumeEvent(handler EventHandler, successCallback ConsumeSuccessCallback, failureCallback ConsumeFailCallbackHandler) error // Destroy 事件实例销毁时, 执行的方法 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:05 2024/3/11 Destroy() // DriverType 获取驱动类型 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:06 2024/3/11 DriverType() string }