我想知道使用GetMessage和GetMessages逐个获取消息的开销是多少? 我应该总是使用GetMessages(32)并且它会比GetMessage()更有优势吗?
答案 0 :(得分:5)
假设您的队列中有32条消息,并且您的目的是获取队列中的所有消息,如果您调用GetMessage(),则需要进行32次调用以获取所有消息,从而获得32个API事务,就像调用GetMessages一样(32)你只需要拨打一个电话即可获得所有消息,因此只需1次交易。
不仅如此,我认为这取决于您的申请。例如,我一直在玩这个功能,我决定我的应用程序的工作者角色(让我们称之为“消费者”)实例一次可以处理4个消息。在这种情况下,对我来说最好使用GetMessages(4)从队列中获取4条消息,并确保我的消费者实例处理的4条消息对其他呼叫者是不可见的。如果我使用了GetMessage(),那么我将不得不进行4次调用,如果我使用了GetMessages(32),那么我的消费者实例只会依赖于那些额外的28条消息而其他消费者实例将无法获得有机会处理这些信息。
答案 1 :(得分:2)
恕我直言,根据您的应用程序调用GetMessages是有意义的。如果在设计上我更有效地批量处理消息,那么我应该批量处理它们(小消息,处理其中一个的开销很低)但是如果处理一条消息需要1-5分钟,那么你最好做GetMessage但有多个工作者角色在做这项工作。
所以,这取决于