Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Timer 是否有一种优雅的方式可以将可视性延迟超过15分钟的消息发布到AWS SQS?_Timer_Amazon Web Services_Amazon Sqs - Fatal编程技术网

Timer 是否有一种优雅的方式可以将可视性延迟超过15分钟的消息发布到AWS SQS?

Timer 是否有一种优雅的方式可以将可视性延迟超过15分钟的消息发布到AWS SQS?,timer,amazon-web-services,amazon-sqs,Timer,Amazon Web Services,Amazon Sqs,在AmazonWeb服务中,它们的队列允许您发布可视性延迟高达15分钟的消息。如果我不希望邮件在6个月内可见,该怎么办 我正试图为投票/推送问题想出一个优雅的解决方案。我可以编写代码,每隔几秒钟轮询一次SQS(或数据库),检查准备可见的消息,然后将它们移动到“可见队列”或类似的位置。我希望有一种更简单、更可靠的方法,让消息在将来的队列中变得可见,而不必担心我的轮询应用程序一直工作得很好 我没有嫁给AWS、SQS或其他任何人,但我更愿意找到一个稳定、可靠的云友好解决方案,它将在遥远的未来触发事件,

在AmazonWeb服务中,它们的队列允许您发布可视性延迟高达15分钟的消息。如果我不希望邮件在6个月内可见,该怎么办

我正试图为投票/推送问题想出一个优雅的解决方案。我可以编写代码,每隔几秒钟轮询一次SQS(或数据库),检查准备可见的消息,然后将它们移动到“可见队列”或类似的位置。我希望有一种更简单、更可靠的方法,让消息在将来的队列中变得可见,而不必担心我的轮询应用程序一直工作得很好

我没有嫁给AWS、SQS或其他任何人,但我更愿意找到一个稳定、可靠的云友好解决方案,它将在遥远的未来触发事件,而不必每天检查它的状态

欢迎有任何想法或其他树木供我探索


谢谢

听起来您可能误解了可视性延迟。其目的是确保轮询应用程序不会多次从队列中提取同一项

换句话说,当项目从队列中拉出时,如果轮询系统有一组机器同时从队列中读取数据,则在预定的时间段内(默认值为30秒,最大值为15分钟)项目将不可见

以下是相关文档:

…特别是与我的评论相关的句子是:

组件收到消息后,消息仍在队列中。但是,您不希望系统中的其他组件再次接收和处理消息。因此,Amazon SQS使用可见性超时来阻止它们,这是Amazon SQS阻止其他消费组件接收和处理该消息的一段时间。”


您应该能够出于自己的目的使用SQS,因为您可以在队列中保留任意长的项目。

7年后,Amazon仍然不支持您需要的功能

有两种方法可以让它正常工作:

  • 让消息在其message_属性中包含传递目标datetime,让使用队列消息的工作人员删除并重新创建在其目标之前使用的任何消息,延迟=max(0,min(secs_直到_target_datetime,900));这将允许您有效地为将来任意时间安排邮件
或者

  • (频率略低且成本较高:)类似地,如果消息尚未处理,请重新创建它并将其可见性超时更改为timeout=max(0,min(secs_until_target_datetime,43200))

使用可见性超时的缺点是任何读取都会重新触发它。

自2016-12-01以来,有一种直接的AWS解决方案:


每次执行都可以在转换之间保持状态,并且在等待过程中不会花费任何金钱。

嘿,Jay-抱歉,我的问题不太清楚。我指的不是消息可见性,而是延迟队列,消息在一段时间内对任何人都不可见(并不是因为它们已被其他进程签出)。这会在用户确定的时间段内阻止任何消息被处理。这里有一个链接:你可能想看看,他们有两个新产品,看起来非常适合你的尝试。