当前位置: 首页 > news >正文

英文网站推广工作深圳制作网站有几家

英文网站推广工作,深圳制作网站有几家,网页制作 视频教程,上海公司名义买房条件上篇文章《RocketMQ消息队列#xff08;一#xff09;—— 基本概念和消息类型》记录了RocketMQ的一些基本的概念#xff0c;本文主要写几个go语言操作RocketMQ的示例代码 一、发送普通消息 import (contextfmtgithub.com/apache/rocketmq-…  上篇文章《RocketMQ消息队列一—— 基本概念和消息类型》记录了RocketMQ的一些基本的概念本文主要写几个go语言操作RocketMQ的示例代码 一、发送普通消息 import (contextfmtgithub.com/apache/rocketmq-client-go/v2github.com/apache/rocketmq-client-go/v2/primitivegithub.com/apache/rocketmq-client-go/v2/producer )func main() {p, err : rocketmq.NewProducer(producer.WithNsResolver(primitive.NewPassthroughResolver([]string{127.0.0.1:9876})),producer.WithRetry(2), //指定重试次数)if err ! nil {panic(err)}if err p.Start(); err ! nil {panic(启动producer失败)}topic : test// 构建一个消息message : primitive.NewMessage(topic, []byte(hello world!))res, err : p.SendSync(context.Background(), message)if err ! nil {fmt.Printf(send message error: %s\n, err)} else {fmt.Printf(send message success: result%s\n, res.String())}if err p.Shutdown(); err ! nil {panic(关闭producer失败)} }二、消费消息 import (contextfmtgithub.com/apache/rocketmq-client-go/v2github.com/apache/rocketmq-client-go/v2/consumergithub.com/apache/rocketmq-client-go/v2/primitivetime )func main() {c, err : rocketmq.NewPushConsumer(consumer.WithGroupName(test),consumer.WithNsResolver(primitive.NewPassthroughResolver([]string{127.0.0.1:9876})),)if err ! nil {panic(err)}if err : c.Subscribe(test,consumer.MessageSelector{},// 收到消息后的回调函数func(ctx context.Context, msgs ...*primitive.MessageExt) (consumer.ConsumeResult, error) {for i : range msgs {fmt.Printf(获取到值 %v \n, msgs[i])}return consumer.ConsumeSuccess, nil}); err ! nil {}err c.Start()if err ! nil {panic(启动consumer失败)}//不能让主goroutine退出time.Sleep(time.Hour)_ c.Shutdown() }三、发送延迟消息 延迟消息和普通的发送区别就是在需要发送的消息上用下面的代码设置发送的级别即可 message.WithDelayTimeLevel(3)全部代码如下 import (contextfmtgithub.com/apache/rocketmq-client-go/v2github.com/apache/rocketmq-client-go/v2/primitivegithub.com/apache/rocketmq-client-go/v2/producer )func main() {p, err : rocketmq.NewProducer(producer.WithNsResolver(primitive.NewPassthroughResolver([]string{127.0.0.1:9876})),producer.WithRetry(2), //指定重试次数)if err ! nil {panic(err)}if err p.Start(); err ! nil {panic(启动producer失败)}topic : test// 构建一个消息message : primitive.NewMessage(topic, []byte(this is a delay message!))// 给message设置延迟级别message.WithDelayTimeLevel(3)res, err : p.SendSync(context.Background(), message)if err ! nil {fmt.Printf(send message error: %s\n, err)} else {fmt.Printf(send message success: result%s\n, res.String())}if err p.Shutdown(); err ! nil {panic(关闭producer失败)} }四、发送事务消息 发送事务消息需要我们写一个TransactionListener接口的方法指明事务执行成功和回调的具体操作接口如下 type TransactionListener interface {// When send transactional prepare(half) message succeed, this method will be invoked to execute local transaction.ExecuteLocalTransaction(*Message) LocalTransactionState// When no response to prepare(half) message. broker will send check message to check the transaction status, and this// method will be invoked to get local transaction status.CheckLocalTransaction(*MessageExt) LocalTransactionState }完整的代码如下 import (contextfmtostimegithub.com/apache/rocketmq-client-go/v2github.com/apache/rocketmq-client-go/v2/primitivegithub.com/apache/rocketmq-client-go/v2/producer )type DemoListener struct { }func (dl *DemoListener) ExecuteLocalTransaction(msg *primitive.Message) primitive.LocalTransactionState {fmt.Println(开始执行本地逻辑)time.Sleep(time.Second * 3)fmt.Println(执行本地逻辑失败)//本地执行逻辑无缘无故失败 代码异常 宕机return primitive.UnknowState }func (dl *DemoListener) CheckLocalTransaction(msg *primitive.MessageExt) primitive.LocalTransactionState {fmt.Println(rocketmq的消息回查)return primitive.CommitMessageState }func main() {p, _ : rocketmq.NewTransactionProducer(DemoListener{},producer.WithNsResolver(primitive.NewPassthroughResolver([]string{127.0.0.1:9876})),producer.WithRetry(1),)err : p.Start()if err ! nil {fmt.Printf(start producer error: %s\n, err.Error())os.Exit(1)}res, err : p.SendMessageInTransaction(context.Background(),primitive.NewMessage(TopicTest5, []byte(Hello RocketMQ again )))if err ! nil {fmt.Printf(send message error: %s\n, err)} else {fmt.Printf(send message success: result%s\n, res.String())}time.Sleep(5 * time.Minute)err p.Shutdown()if err ! nil {fmt.Printf(shutdown producer error: %s, err.Error())} } 后记   个人总结欢迎转载、评论、批评指正
http://www.zqtcl.cn/news/832758/

相关文章:

  • 滁州市城市建设投资有限公司网站云服务器里面做网站播放器
  • 做yy头像的网站口碑营销案例简短
  • 卖灯杆的做网站好网页ip代理
  • 做网站开发工具哪个好网络协议分析课程设计报告
  • 如何进行营销型企业网站的优化网站开发有很多种吗
  • 卡片式设计网站营销培训课程视频
  • 网站rss地址生成wordpress 首页幻灯片
  • 网络营销软件专业网站优化方案
  • 展览公司网站建设方案深圳正规做网站的公司
  • 网站做关键词首页淮南网站建设报价
  • 西山区城市建设局网站网页浏览器的英文缩写
  • 个人网站怎么做内容比较好昆明网站制作企业
  • 婚嫁网站建设计划专业 网站建设
  • 成品免费ppt网站做网站玩玩
  • 怎么给网站做seo优化网站的主页按钮怎么做的
  • 蓬莱做网站公司wordpress 加微信号
  • 建设网站如何优化关键词鞍山网站制作招聘网
  • 公司的网站是什么wordpress禁止s.w.org
  • 什么网站做蜘蛛池广渠门做网站的公司
  • 网站建设公司一年多少钱网站建设高校
  • 网站建设以及seo报告的格式
  • 如何做网站免费搭桥链接网站建设使用的什么软件
  • html 门户网站怎么根据网站做二维码
  • 网站增加新闻功能建设境外网站需要什么手续
  • 做产品设计之前怎么查资料国外网站怀化政法网站
  • 微信商城与网站一体深圳it外包服务公司
  • 北京建网站 优帮云建筑考试培训网
  • 深圳市网站哪家做的好巴彦淖尔网站制作开发
  • 搭建网站的步骤有哪些产品推广活动策划方案
  • 哪些网站是用c语言做的html网页wordpress