Intereting Posts

Amazon SQS不向我的工作者实例提供完整的消息

我试图排队和SQS处理请求。 我已经在弹性beanstalk上使用Node.JS worker设置了它,当从另一个框中添加消息时,它自动从SQS获取httppost。

问题是,我无法从http post中获取所有必要的数据,从队列中删除消息。 我看到的唯一数据是我自己在正文中input的消息数据,但没有MessageId或ReceiptHandle。

当我手动调用SQS.receiveMessage(queuerurl,callback)时,我能够获得这些属性,但前提是我没有设置自动http发布。

当我将SQS发布给我的工作人员时,消息立即进入队列,然后进入一个不可见的“正在运行”状态,从而防止使用SQS.receiveMessage(queuerurl,callback)传递任何消息。

任何人都可以解释我在这里失踪?

我是否误解SQS提供的“自动发送消息”?

谢谢您的帮助

Solutions Collecting From Web of "Amazon SQS不向我的工作者实例提供完整的消息"

Elastic Beanstalk工作人员在他们身上提供服务,从SQS中提取消息并通过HTTP将这些消息提交给您的代码。 SQS本身在这里没有什么特别的地方。 这是beanstalk worker上的服务,它pipe理消息的轮询SQS,并在处理后删除这些消息。

从文档 :

当工作环境中的应用程序返回一个200 OK响应来确认它已经收到并成功处理了请求时,守护进程发送一个DeleteMessage调用到SQS队列,以便将消息从队列中删除。