package main

import (
	"fmt"
	"github.com/ichunt2019/go-msgserver/utils/rabbitmq"
	"time"
)

type RecvPro struct {

}

//// 实现消费者 消费消息失败 自动进入延时尝试  尝试3次之后入库db
func (t *RecvPro) Consumer(dataByte []byte) error {
	fmt.Println(string(dataByte))
	//return errors.New("顶顶顶顶")
	return nil
}

//消息已经消费3次 失败了 请进行处理
func (t *RecvPro) FailAction(dataByte []byte) error {
	fmt.Println(string(dataByte))
	fmt.Println("任务处理失败了,我要进入db日志库了")
	fmt.Println("任务处理失败了,发送钉钉消息通知主人")
	return nil
}



func main() {

	//消费者实现 下面接口即可
	//type Receiver interface {
	//	Consumer([]byte)    error
	//}
	print("开始")
	t := &RecvPro{}
	queueExchange := &rabbitmq.QueueExchange{
		"szpurchase_message_tasks",
		"szpurchase_message_tasks",
		"szpurchase_message_tasks",
		"direct",
		"amqp://guest:guest@192.168.1.252:5672/",
	}
	print("3333434")
	for{
		print("")
		mq := rabbitmq.New(queueExchange)
		mq.RegisterReceiver(t)
		err :=mq.Start()
		if err != nil{

			fmt.Println(err)
		}

		time.Sleep(time.Second)
	}





}