我以某种方式在Wikipedia:SQS中看到这句话写道:
如果连续30天没有访问整个队列,亚马逊保留删除整个队列的权利。
这确认了吗?我找不到相关的资源。
如果是这样,说,我的程序一直没有调用SQS很长一段时间,这是否意味着我需要确保我的队列总是在那里调用{{1每当我想把一些消息推送到队列?
答案 0 :(得分:2)
如果队列不存在,您将收到AWS.SimpleQueueService.NonExistentQueue
错误(请参阅SQS API docs)。所以一种安全的方法是在没有任何额外检查的情况下发送,并适当地处理错误。
也就是说,通常如果您使用队列,您有一些接收组件从时间(或一直使用例如长轮询)轮询队列。该组件的存在确保队列存在;也就是说,在接收端你创建队列(如果它不存在),然后只访问它(根据文档,每个访问计数)。
如果没有接收组件不时检查队列,发送消息没有多大意义:)
答案 1 :(得分:2)
我想确认他们保留删除30天内未使用的队列的权利:
Amazon SQS可以删除您的队列而不通知其中一个 以下行动连续30天未执行: SendMessage,ReceiveMessage,DeleteMessage,GetQueueAttributes, SetQueueAttributes,AddPermission和RemovePermission。
答案 2 :(得分:0)
更新:此警告已替换为in the current SQS documentation:
请注意
除非您的应用程序特别需要重复创建 队列并使它们处于非活动状态或存储大量数据 您的队列,请考虑使用Amazon S3存储您的数据。
亚马逊没有删除它们,所以把它当作FWIW。