Amazon SQS - 消息不断出现

时间:2013-07-29 08:16:11

标签: amazon-web-services amazon-sqs

我完全卡住了。我正在使用SQS在服务器到服务器之间进行通信。我在凌晨3点向队列添加了一条消息“init_scrape”。每隔5分钟由我的服务器上的脚本轮询队列,以检查队列上的消息并运行任务。这是我的电子邮件日志:

2013-07-29 03:05:01,857 INFO  Queue Messages Found: run_scrape init_scrape
2013-07-29 03:05:01,858 INFO  Init_Scrape Running
2013-07-29 03:22:45,055 INFO  init_scrape deleted from queue
2013-07-29 03:22:45,211 INFO  Queue Messages Found: run_scrape

此时,init_scrape已从队列中删除,只留下run_scrape。绝对没有别的东西将init_scrape消息添加到队列中,但这是下一个日志:

2013-07-29 03:25:02,054 INFO  Queue Messages Found: run_scrape init_scrape
2013-07-29 03:25:02,055 INFO  Init_Scrape Running
2013-07-29 03:42:44,739 INFO  init_scrape deleted from queue
2013-07-29 03:42:44,879 INFO  Queue Messages Found: run_scrape

为什么我只将消息发送到队列一次,但即使我的脚本从队列中删除它,它似乎也会出现?

编辑:这与visibility_timeout有关吗?

1 个答案:

答案 0 :(得分:1)

SQS保证消息将至少一次传递。他们无法保证不会发送很多次。 SQS非常简洁,因为它可以扩展,但实际上你会发现一些奇怪的行为,因为它们是如何扩展的,就像这样,而且消息是按顺序发送的,这使得它对于那些不真正实现的项目来说有点麻烦需要规模。