65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
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())
|
||
}
|