65
windows
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-阿裏雲