我有一个SQS队列,它不断地被数据消费者填充,现在我正在尝试使用Python的boto创建从SQS中拉取这些数据的服务。
我的设计方式是我将有10-20个线程都尝试从SQS队列中读取消息,然后在对数据进行操作(业务逻辑)之前做他们需要做的事情,完成后返回到队列获取下一批数据。如果没有数据,它们将等待直到有可用数据。
我有两个方面不确定的地方:
- 我是否只需使用较长的time_out值调用receive_message()方法,如果在20秒(最大允许时间)内没有返回任何内容,则重试?还是有一种阻塞的方法只返回一次数据可用?
- 我注意到一旦我收到一条消息,它就不会从队列中删除,我是否需要接收一条消息,然后在接收到消息后发送另一个请求将其从队列中删除?这似乎有点过度处理了。
谢谢