订阅定时/延时消息 订阅定时/延时消息的示例代码如下。 package main import ( "context" "fmt" "github.com/apache/rocketmqclientgo/v2" "github.com/apache/rocketmqclientgo/v2/consumer" "github.com/apache/rocketmqclientgo/v2/primitive" "os" ) func main() { // 填写分布式消息服务RocketMQ控制台Namesrv接入点 endpoint : "${ENDPOINT}" // 填写AccessKey,在分布式消息服务RocketMQ控制台用户
管理菜单中创建的用户ID accessKey : "${ACCESSKEY}" // 填写SecretKey 在分布式消息服务RocketMQ控制台用户
管理菜单中创建的用户密钥 secretKey : "${SECRETKEY}" // 填写Topic,在
管理控制台创建 topic : "${TOPIC}" // 在控制台创建的订阅组(Group) group : "${GROUP}" c, : rocketmq.NewPushConsumer( consumer.WithGroupName(group), consumer.WithNsResolver(primitive.NewPassthroughResolver([]string{endpoint})), consumer.WithCredentials(primitive.Credentials{ AccessKey: accessKey, SecretKey: secretKey, }), ) err : c.Subscribe(topic, consumer.MessageSelector{}, func(ctx context.Context, messages ...primitive.MessageExt) (consumer.ConsumeResult, error) { for i : range messages { // 处理消息 fmt.Printf("receive msg: %v n", messages[i]) } // 如果消息处理成功则返回consumer.ConsumeSuccess // 如果消息处理失败则返回consumer.ConsumeRetryLater return consumer.ConsumeSuccess, nil }) if err ! nil { fmt.Println(err.Error()) } // Note: start after subscribe err c.Start() if err ! nil { fmt.Println(err.Error()) os.Exit(1) } waitChan : make(chan interface{}, 0)
来自: