transfer_middleware/until/mq/consumer_test.go

65 lines
1.7 KiB
Go
Raw Normal View History

2024-06-18 16:34:14 +08:00
package mq
import (
"context"
"fmt"
"sync/atomic"
"testing"
"time"
)
func TestConsumer_Start(t *testing.T) {
//initTracer("http://192.168.6.194:14268/api/traces", 1, "go_unit_test_for_util_consumer")
manager := NewConsumerManager(nil)
ctx := context.Background()
consumerConf := &ConsumerConfig{
TopicName: "test_transfer_rs",
GroupName: "test_transfer_rs_consumer",
PerCoroutineCnt: 2,
}
connConf := &ConsumerConnConfig{
NameServers: "http://rmq-cn-j4g3sem5i05.cn-chengdu.rmq.aliyuncs.com:8080",
AccessKey: "1i3vEsceLzcYD26p",
SecretKey: "192602NYDuAHQ76a",
}
i := atomic.Int32{}
err := manager.Subscribe(ctx, connConf, consumerConf, func(ctx context.Context, message *ConsumerMessage) error {
cnt := i.Add(1)
fmt.Printf("%d开始消费%s body=%s \n", cnt, message.MsgId, message.Body)
fmt.Println(message.Properties)
// mock 业务耗时
time.Sleep(1 * time.Second)
fmt.Printf("%d已完成%s body=%s \n", cnt, message.MsgId, message.Body)
return nil
})
fmt.Println(err)
consumerConf = &ConsumerConfig{
TopicName: "test_transfer_rs",
GroupName: "test_transfer_rs_consumer",
PerCoroutineCnt: 2,
}
err = manager.Subscribe(ctx, connConf, consumerConf, func(ctx context.Context, message *ConsumerMessage) error {
cnt := i.Add(1)
fmt.Printf("%d开始消费%s body=%s \n", cnt, message.MsgId, message.Body)
fmt.Println(message.Properties)
// mock 业务耗时
time.Sleep(1 * time.Second)
fmt.Printf("%d已完成%s body=%s \n", cnt, message.MsgId, message.Body)
return nil
})
fmt.Println(err)
_ = manager.Start(context.Background())
time.Sleep(90 * time.Second)
// mock 退出
_ = manager.Stop(context.Background())
}