我不知道什麼是得到的消息一個接一個使用的GetMessage VS的getMessages的開銷? 我應該總是使用GetMessages(32),它會比GetMessage()有什麼優勢嗎?CloudQueue的GetMessage VS的getMessages
1
A
回答
5
假設你有你的隊列32級的消息,你的目的是讓隊列中的所有郵件,如果你調用的GetMessage(),你將需要做出32個呼叫從而讓所有的消息,如果你調用其中32個API交易GetMessages(32)只需一次調用即可獲得所有消息,因此只需1次事務。比
更多,我認爲這取決於你的應用程序。例如,我一直在玩這個功能,我決定我的應用程序的工作者角色(我們稱之爲「消費者」)實例一次可以處理4條消息。在這種情況下,最好使用GetMessages(4)從隊列中獲取4條消息,並確保消費者實例處理的4條消息對其他調用者不可見。如果我利用的GetMessage(),那麼我將不得不作出這一呼籲的4倍,如果我利用的getMessages(32),那麼我的消費情況也只是坐在這些額外28個消息和其他消費情況不會得到有機會處理這些消息。
2
恕我直言,調用的getMessages使得基於您的應用意義。如果設計的是更有效的爲我處理批量處理郵件,然後我應該讓他們分批(小消息,低開銷來處理其中之一),而是它是否需要1-5分鐘處理一個消息,那麼你最好在做GetMessage但有多個工作角色在做這項工作。
所以,這取決於
相關問題
- 1. 的Throwable的getMessage()
- 2. Zend框架2:空的isValid /的getMessages
- 3. 使用GetMessages的OpenPop和Web Beacon錯誤
- 4. 的GetMessage()給出一個System.ExecutionEngineException
- 5. 爪哇 - 的getMessage()返回null
- 6. getMessage的設計模式
- 7. 的GetMessage一個超時
- 8. 合併GetMessage和PeekMessage
- 9. Android的異常的getCause - 的getMessage
- 10. 如何等待Azure CloudQueue被刪除?
- 11. Twilio「0.11.1」getmessages「anchor」參數不起作用
- 12. PHP擴展異常爆發的getMessage
- 13. GetMessage的調用導致線程停止
- 14. {}回聲標記 「{$ E->的getMessage()}」
- 15. Win32 API中GetMessage()的內部機制?
- 16. 來自GetMessage的Windows消息9?
- 17. GetMessage不檢索消息
- 18. 天青CloudQueue的PeekMessage獲得無形的消息
- 19. Zend框架 - IsValid的返回false,但的getMessages()是空
- 20. CloudQueue ApproximatelyMessageCount和Azure門戶UX之間的差異
- 21. Laravel - 獨特的規則驗證 - getMessages不存在
- 22. 翻譯::的getMessages返回一個空數組
- 23. java.lang.IllegalStateException:上述方法調用缺少的行爲定義getMessage(「title」)
- 24. Windows Azure隊列GetMessage返回null
- 25. 擴展異常類中斷getMessage()
- 26. GetMessage失敗時會發生什麼?
- 27. Win32 - GetMessage從另一個線程
- 28. PHPUnit:嘲諷PDOException-> getMessage()方法
- 29. 在GetMessage循環中沒有收到WM_COMMAND
- 30. 無效的窗口句柄後的GetMessage()循環
謝謝,但你衡量調用4倍的GetMessage而不是一分(4)的getMessages的開銷?我想知道是否會有真正的世界性差異。 – user1662812
我還沒有做到這一點。我的猜測是開銷會是響應大小。您從存儲系統中獲取更多數據。我能想到的其他事情是Windows Azure所花費的處理時間,我認爲這可能微不足道。 –
@ user1662812真實世界的區別在於什麼?如果你在一個串行循環中調用它四次,你可能會注意到額外的延遲,因爲它是4個HTTP請求(往返存儲)而不是一個。在同一個數據中心內,由於額外調用「GetMessage」,我會說你會增加30-90毫秒的額外延遲時間。但就吞吐量而言,我不會指望有什麼區別。在CPU時間內,解析四個XML響應可能比一個更昂貴。 (高拉夫指出,還有更多的數據。) – smarx