65
阿里云
HTTP 定时消息__HTTP 接入(简单)_消息队列 MQ-阿里云
MQ 的定时消息是指在规定的时间发给消费者进行消费的消息。相比于普通消息,定时消息多了消费时间戳属性,该属性主要用于定义消息正式发送给消费者进行消费的时间。下面会简要介绍 HTTP 定时消息的主要用法。
属性说明
需要在发送消息里面添加时间戳,该时间戳用于标记当前消息消费的时间,参数名称为:startdelivertime。
HTTP 定时消息示例代码
下面的示例程序是用 Python 语言编写的,其它类语言只需在相应的 URL 上添加定时消费的时间戳即可。具体添加方法,请参考如下示例。
class HttpProducer(object):
def __init__(self):
"""签名值"""
self.signature = "Signature"
"""生产者组ID"""
self.producerid = "ProducerId"
"""消息主题"""
self.topic = "topic"
"""访问码"""
self.ak = "AccessKey"
"""配置文件解析器"""
self.cf = ConfigParser.ConfigParser()
"""MD5对象"""
self.md5 = hashlib.md5()
"""
发送Topic主流程
"""
def process(self):
"""读取配置文件"""
self.cf.read("user.properties")
"""读取消息主题"""
topic = self.cf.get("property","topic")
"""存储消息URL路径"""
url = self.cf.get("property","url")
"""访问码"""
ak = self.cf.get("property","user_accesskey")
"""密钥"""
sk = self.cf.get("property","user_secretkey")
"""生产者组ID"""
pid = self.cf.get("property","producer_group")
"""HTTP请求主体内容"""
content = U"中文".encode('utf-8')
"""分隔符"""
newline = "n"
"""获取URL域名地址"""
urlname = urlparse(url).hostname
"""根据HTTP主体内容计算MD5值"""
self.md5.update(content)
"""建立HTTP连接对象"""
conn = httplib.HTTPConnection(parseURL(urlname))
try:
for index in range(0,10):
"""时间戳"""
date = repr(int(time.time())*1000)[0:13]
"""构造签名字符串"""
signString = str(topic + newline + pid + newline + self.md5.hexdigest() + newline + date)
"""计算签名"""
sign = calSignature(signString,sk)
"""内容类型"""
contentFlag ="Content-type"
"""HTTP请求头部对象"""
headers = {
self.signature : sign,
self.ak : ak,
self.producerid : pid,
contentFlag : "text/html;charset=UTF-8"
}
"""定时消息时间戳,5秒之后该消息开始消费"""
timeStamp = str(int(time.time()*1000) + 5000);
"""开始发送HTTP定时消息"""
conn.request(method="POST",url="/message/?topic="+topic+"&time="+date+"&startdelivertime="+timeStamp+"&tag=http&key=http",
body=content,
headers=headers)
"""获取HTTP应答消息"""
response = conn.getresponse()
"""读取HTTP应答内容"""
msg = response.read()
print "response:"+msg
except Exception,e:
print e
finally:
conn.close()
"""流程入口"""
if __name__ == '__main__':
"""创建消息生产者"""
producer = HttpProducer()
"""开启生产者流程"""
producer.process()
最后更新:2016-11-23 16:04:20
上一篇:
Python 收发消息__HTTP 接入(简单)_消息队列 MQ-阿里云
下一篇:
HTTP 消息查询__HTTP 接入(简单)_消息队列 MQ-阿里云
SDK示例代码运行简介__数据订阅_用户指南_数据传输-阿里云
组__身份管理_用户指南_访问控制-阿里云
BandwidthPackagePublicIpMonitorDataSetType__数据类型_API参考_专有网络 VPC-阿里云
仿冒检测示例代码__Java-SDK_SDK手册_移动安全-阿里云
监控项说明__主机监控_用户指南_云监控-阿里云
怎样为一个子用户授予只读访问RDS的权限___云数据库(RDS)授权问题_授权常见问题_访问控制-阿里云
查看BINLOG日志__日志管理_API 参考_云数据库 RDS 版-阿里云
停机说明__购买指导_加密服务-阿里云
Spark + MNS__Spark_开发人员指南_E-MapReduce-阿里云
步骤一: 实验环境准备__快速入门_推荐引擎-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云