我完全被困住了。我使用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有关吗?
发布于 2013-07-29 18:42:10
SQS保证消息至少传递一次。他们不能保证它不会被交付很多次。SQS确实很整洁,因为它可以扩展,但是实际上您发现了一些奇怪的行为,因为它们是如何使其扩展的,比如这样的,以及消息的无序传递,这使得它对于不需要扩展的项目来说有点麻烦。
https://stackoverflow.com/questions/17919068
复制相似问题