工程師: 這個線程執行receive_message 具體遇到什麼問題? 具體堵塞在什麼地方?
工程師: 抱歉,我們對django開發所知甚少。 相關開發問題,還需要您到相關開發社群去咨詢一下。
“執行到message.receive_message()這裡就停在這裡了” 停止了多長時間?
工程師: 您好,消息的結構是這樣的。請問您亂碼問題在本地讀取也是,還是隻是控制台測試是這樣?
工程師: 長輪詢最長是30秒,如果超過30秒receive_message都沒有傳回,可以懷疑是代碼的問題,建議使用單線程寫個最簡單的程式(官網python demo),先将receive_message調試成功。
關于亂碼: queue提供的sdk,會預設對發送的消息做Base64 Encode,對接收到的消息做Base64 Decode。
是以如果使用queue sdk來發送,sdk接收是沒有問題的。 在隊列控制台點選“接收消息”時,您需要指定使用base64解碼.
工程師: topic提供的sdk, 預設是不做任何編解碼的。
是以如果用sdk發送消息到topic, 配置推送消息到隊列,用python sdk拉取隊列消息,是會産生亂碼的,需要自行做base64解碼。
php: 從1.2.1版本開始,Queue提供了禁用Base64的選項,需要在getQueueRef的時候傳入參數$base64 = FALSE;
java: 從1.1.0版本開始,消息Base64編碼支援可選。 其他語言的queue sdk目前還不提供base64編解碼可選。