【问题标题】:Efficiently monitoring for new SQS messages有效监控新的 SQS 消息
【发布时间】:2019-07-09 08:16:10
【问题描述】:

我在我的应用程序中使用 Amazon SQS 来使用消息。我的应用程序用于处理图像。我正在寻找一种有效的方法来持续监控新消息。我的第一种方法是在图像完成处理后读取消息。

问题是,如果在最长 20 秒的轮询后收到一条消息,则不会触发读取消息功能。

我考虑过创建一个间隔运行的函数,但是我不确定采用哪种方法以及是否有更有效的方法(快速检索,更少的空结果调用)来解决这个问题。

我正在使用适用于 .NET / C# 的 AWS 开发工具包

【问题讨论】:

  • 通常的方法是在第一次超时后立即开始另一个长轮询。然后消息一入队就收到了。
  • 嗨,我有一个长的拉动超时事件可用吗?
  • ReceiveMessage 将返回,或者ReceiveMessageAsync 返回的Task 将在操作超时时完成。
  • 该函数的任何链接,在 C#/.NET 文档中找不到

标签: c# amazon-web-services messaging amazon-sqs


【解决方案1】:

AWS 长轮询文档可在此处找到:

http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html

此外,您可以使用计划运行的 Windows 任务调度程序(最多每 1 分钟一次),或者如果您需要更快地处理队列项目,Windows 服务可以持续运行,以任何方式轮询队列你想要的频率,然后要么做这项工作,要么“睡觉”,直到你想再次检查。

【讨论】:

  • 这也有效;如果我使用的是 Windows 服务,我会在检查之间使用计时器。如果我正在使用由任务调度程序运行的作业,并且我能够/愿意在两次检查之间等待长达 1 分钟,那么我不会使用计时器。
  • 您需要一个工作环境来不断寻找新消息。这是文档的链接。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 不幸的是,AWS 不支持 IIS 应用程序的工作环境。
猜你喜欢
  • 2021-10-04
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
相关资源
最近更新 更多