120 lines
3.5 KiB
Go
120 lines
3.5 KiB
Go
// 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, eventData *define.EventData, eventResult *define.SendResult, err error)
|
|
|
|
// SendSuccessCallback 发送事件成功的回调
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 17:32 2024/6/26
|
|
type SendSuccessCallback func(ctx context.Context, eventResult *define.SendResult)
|
|
|
|
// 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)
|
|
|
|
// EventParseFailCallback ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 18:48 2024/6/27
|
|
type EventParseFailCallback func(err error, eventData string)
|
|
|
|
// 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) (*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
|
|
// SetPanicCallback 设置失败回调的处理函数
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 18:39 2024/6/27
|
|
SetPanicCallback(panicCallback PanicCallback)
|
|
// SetEventParseFailCallback 设置数据解析失败的处理函数
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 18:51 2024/6/27
|
|
SetEventParseFailCallback(parseFailCallbackCallback EventParseFailCallback)
|
|
}
|