// Package message ...
//
// Description :  消息队列的接口约束
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2021-09-23 10:58 下午
package message

import (
	"git.zhangdeman.cn/zhangdeman/gopkg/middleware/kafka"
)

// IMessageQueue 消息队列的接口约束
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:59 下午 2021/9/23
type IMessageQueue interface {
	// Publish 发布消息
	Publish(data interface{}) error
	// Subscribe 订阅消息
	Subscribe()
}

// IKafkaMessageHandler 卡夫卡消息处理
type IKafkaMessageHandler kafka.IConsumeDataHandler

// IRedisMessageHandler redis消息的处理
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:04 上午 2021/9/24
type IRedisMessageHandler interface {
	// Execute 处理数据
	Execute(data []byte) error
	// Success 成功回调
	Success(data []byte)
	// Fail 处理失败回调
	Fail(data []byte, err error)
	// Exception 消费出现异常回调
	Exception(err error)
}