我尝试使用并行请求,但是由于AWS的保留,除非删除以前轮询的消息,否则它不允许回轮询相同的队列。
但是我使用FIFO来实现相同的目的,而不是标准队列。
预先感谢! :)
答案 0 :(得分:1)
当您说“除非删除以前轮询的消息,否则不允许回轮询相同的队列” ,我认为您在谈论的是inflight messages per queue limit,这是相当高的在120,000:
对于大多数标准队列(取决于队列流量和消息积压),最多可以有大约120,000个运行中消息(使用者从队列中接收,但尚未从队列中删除)。如果达到此限制,Amazon SQS将返回OverLimit错误消息。为了避免达到限制,您应该在处理完消息后从队列中删除它们。您还可以增加用于处理消息的队列数。要请求增加限额,请file a support request。
SQS的预期用例是让工作人员接收一条消息,执行一些工作,然后删除该消息。如果您不遵循这种模式,则强烈建议您重新评估SQS是否是您要执行的操作的正确工具。
但是,如果您确实有一个有效的用例,可以一次运行超过12万条消息,则需要向AWS描述您的用例,并获得他们的批准以增加该限制。