当前位置: 首页 > 知识库问答 >
问题:

Amazon AWS Worker不会从SQS队列中删除消息

麻桐
2023-03-14

但我的却不是这样。他们正在处理OK,并将正在编码的视频保存到正确的S3存储桶中。但它们没有像应该的那样删除队列项。

我试过用各种方法发送报头,包括...

http_response_code(200);

header("HTTP/1.1 200 OK");

header("HTTP/1.1 200 OK", true, 200);

我在页面上没有输出,但尝试调用了ob_start();在起始和ob_end_flush()处;在发送报头之后,甚至尝试在任何处理之前一开始就直接执行报头。没有任何工作,消息仍然在飞行中,并在其可见性超时结束后重新传递。

救命啊!

多谢了。

共有1个答案

西门飞星
2023-03-14

好的,我已经意识到这与发送或不发送响应代码无关。

正在发送代码,但实际清除队列项的守护进程没有运行,因为我使用的是一个普通弹性beanstalk应用程序的磁盘映像(我以前使用过它,并且假设它们是相同的--它们不是这样的)

为了修复,我创建了一个新的弹性beanstalk worker应用程序,从Configuration>实例中获取标准的自定义AMI ID,并在社区实例中搜索它,然后创建一个新的ec2实例副本。

我对这个新的Worker样式服务器进行了自定义,并对其进行了映像,获得了自定义ID并替换了Worker ID,关闭了ec2服务器并删除了我从中获得ID的新Worker应用程序。

一旦我重新启动了原来的应用程序,现在消息会被删除。

我希望这在某一点上对某人有帮助!

 类似资料:
  • null 但它不会从Q1中删除消息。 我不想请求验证失败的消息,但想请求那些由于下游应用程序失败而没有处理的消息进行重试。 几个问题:1。如果我没有在DownstreamAppException的catch中抛出异常,则消息不会抛出retryTemplate和Recoverer。是因为请求被拒绝的消息是一条新消息吗? 谢谢

  • 我最近将一台服务器从ActiveMQ从5.8升级到了最新版本(5.11.1)。从那以后,我偶尔注意到,消息将在特定队列中累积,而不会被删除。 我们的架构有一个生产者,一个消费者。我可以看到消费者仍然保持联系,但制作人的信息越来越多。我的解决方案是通过web控制台删除队列。之后,我立即看到消费者重新连接,消息再次开始处理。 如果相关,在这种情况下,生产者正在运行NMS。NET和消费者在Java 1.

  • 这就是事情。 我正在使用PHP AMQP从Rabbitmq读取结果队列,以便处理发送的每封电子邮件上的重要信息。完成后,我需要将该消息删除或标记为已写入,以便下次读取队列时,不会得到已处理的消息。 由于Rabbitmq服务器每小时发送超过10.000封电子邮件,每次我读取队列以处理结果发送时,脚本至少可以运行5分钟,以便处理队列中的所有消息,因此在完成后,在这5分钟内会发送数百条新消息。这使得我无

  • 我已经建立了AWS架构体系,以便每次对发电机数据库条目的更新都以启用重复数据删除的SQS先进先出队列结束。我还有一个测试来覆盖这个场景,在那里我清除了队列(队列可以从套装中的其他测试中获得更新。为了避免在收到正确的消息之前必须轮询大量的消息,我在运行测试之前清除队列),更新Dynamo Db,并在轮询队列时检查这些条目是否收到。这个测试是不稳定的,有时会失败,因为我发送的所有更新都没有从队列中收到

  • 当一个文件被添加到我的S3存储桶中时,会触发一个S3PUT事件,将一条消息放入SQS。我已经配置了一个Lambda,一旦有消息可用,它就会被触发。 在lambda函数中,我发送了一个API请求,以在ECS Fargate容器上运行一个任务,其中包含从SQS接收的消息的环境变量。在容器中,我使用消息从S3下载文件,进行处理,如果处理成功,我希望从SQS中删除消息。 然而,在我的lambda执行后,消

  • 当消息到达SQS时,如何触发AWS Lambda函数(Python),并将消息传递给HTTPendpoint,在处理API中的数据后,从SQS队列中删除消息?如何在Python lambda中实现这一点?