前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >消息队列在VFP中的应用

消息队列在VFP中的应用

作者头像
加菲猫的VFP
发布2021-08-16 14:21:46
9900
发布2021-08-16 14:21:46
举报
文章被收录于专栏:加菲猫的VFP

业务场景

会员注册成功之后,发送成功的短信\邮件,传统的做法就是在会员注册成功的程序上面做一个发送短信的代码,增加发送邮件的代码,

假设会员注册的执行需要1秒,发送短信1秒,发送邮件1秒,那么会员注册总共需3秒

为了增加更大的并发量,我们引入消息队列,会员注册成功之后,就将成功的消息写入消息队列,比如手机号等等. 然后分别做一个发送短信的和发送邮箱的

服务程序,这样就可以将程序的时间节省到 1+1秒.

有人说了,存到数据库也可以啊,当然可以,只是这个消息不需要长期存储,用完就清掉了,没必要做存到数据库啊.

应对秒杀的场景,秒杀是突然好几倍的流量进来,数据库就会承担不了,那么就可以用消息队列来存储秒杀数据,然后订单系统再按串行处理秒杀数据,保证

数据库不崩溃.限制抢购的数量,也可以用消息队列来做,1000商品=1000消息队列,之后的就可以不用查询数据库,直接返回无货.

消息队列的产品很多,这次我们来学习一下微软的产品MSMQ吧.

1

安装消息队列

2

消息队列是什么

消息队列就是信息的队伍,排先进先出顺序排序的

可以有多少队列,每个队列有多条消息

3 VFP创建一个消息队列

lcQueueName = "MyQueue1" &&消息队列的名字

oQueueInfo = CreateObject("msmq.msmqqueueinfo")

*--私有队列 工作组模式可用 .\Private$\

*--公有队列 .\

oQueueInfo.Pathname = ".\Private$\"+lcQueueName &&must be unique

oQueueInfo.Label = lcQueueName

oQueueInfo.Create &&消息队列不可以重复创建

可以打开计算机管理,查看到我们刚刚创建的消息队列

3

写入一条消息

*发送消息

lcQueueName = "MyQueue1" &&消息队列的名字

oQueueInfo = CreateObject("msmq.msmqqueueinfo")

oQueueInfo.Pathname = ".\Private$\"+lcQueueName &&must be unique

oQueueInfo.Label = lcQueueName

* 以下第一个参数为,打开队列的访问(send、peek、receive)模式。

*!*MQ_RECEIVE_ACCESS 1

*!*MQ_SEND_ACCESS 2

*!*MQ_PEEK_ACCESS 32

*!*MQ_ADMIN_ACCESS 128

oSendQueue= oQueueInfo.Open(2, 0)

*创建消息

oMsg = create("msmq.msmqmessage")

oMsg.Label = "我是第一条消息"

oMsg.Body = "我是第一条内容"

oMsg.Send(oSendQueue)

4

读取消息

oMsg = Create("msmq.msmqmessage")

lcQueueName = "myQueue1"

oQueueInfo = Createobject("msmq.msmqqueueinfo")

oQueueInfo.Pathname = ".\Private$\"+lcQueueName

&&接收模式

oSendQueue= oQueueInfo.Open(1, 0)

oMsg = oSendQueue.Receive(,,,100) &&得到消息

If Isnull(oMsg)

Return

Endif

Messagebox(oMsg.Body, 0, oMsg.Label)

5

删除队列

lcQueueName = "myQueue1"

oQueueInfo = create("msmq.msmqqueueinfo")

oQueueInfo.Pathname = ".\Private$\"+lcQueueName

oQueueInfo.Delete

6

接收消息但不删除

oSendQueue.Peek(,,,100) &&接收消息但不删除

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档