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()) }