aws SQS可视化超时

2023-12-21 04:38
文章标签 可视化 超时 aws sqs

本文主要是介绍aws SQS可视化超时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当消费者从队列中接收并处理一个消息时,该消息会留在队列中。Amazon SQS不会自动删除该消息。因为Amazon SQS是一个分布式系统,不能保证消费者真正收到消息(例如,由于连接问题,或由于消费者应用程序中的问题)。因此,消费者在接收和处理消息后必须从队列中删除该消息。
在这里插入图片描述
在收到一个消息后,它立即留在队列中。为了防止其他消费者再次处理该消息,Amazon SQS设置了一个可见性超时,即Amazon SQS防止其他消费者接收和处理该消息的时间段。一个消息的默认可见性超时是30秒。最小是0秒。最大的是12小时。有关使用控制台为队列配置可见性超时的信息。

正在飞行中的信息

一个Amazon SQS消息有三种基本状态。
1.由生产者发送至队列。
2.由消费者从队列中接收。
3.从队列中删除。

当生产者将消息发送到队列中,但消费者还没有从队列中接收到消息时(即状态1和状态2之间),该消息被认为是被存储的。对存储的消息的数量没有配额。当消费者从队列中收到一条消息,但尚未从队列中删除时(即在状态2和3之间),该消息被认为是在飞行。对飞行中的消息的数量是有配额的。
对于大多数标准队列(取决于队列流量和消息积压),最多可以有大约120,000条飞行中的消息(消费者从队列中收到,但尚未从队列中删除)。如果您在使用短轮询时达到这个配额,Amazon SQS会返回OverLimit错误信息。如果您使用长轮询,Amazon SQS不会返回错误信息。为了避免达到配额,你应该在处理完信息后从队列中删除这些信息。您也可以增加您用来处理消息的队列的数量。要请求增加配额,请提交一个支持请求。
对于先进先出的队列,最多可以有20,000条机内消息(消费者从队列中收到,但尚未从队列中删除)。如果你达到这个配额,Amazon SQS不会返回错误信息。

设置可见性超时

可见性超时从Amazon SQS返回一个消息时开始。在这段时间内,消费者会处理并删除该消息。但是,如果消费者在删除消息之前失败了,并且您的系统在可见性超时之前没有为该消息调用DeleteMessage动作,那么该消息对其他消费者来说就变得可见了,并且该消息会被再次接收。如果一个消息必须只被接收一次,你的消费者应该在可见性超时的时间内删除它。
每个Amazon SQS队列的默认可见性超时设置为30秒。你可以为整个队列改变这个设置。通常情况下,你应该将可见性超时设置为你的应用程序处理和删除队列中的消息所需的最大时间。当接收消息时,你也可以为返回的消息设置一个特殊的可见性超时,而不改变整个队列的超时。欲了解更多信息,请参见及时处理消息一节中的最佳做法。
如果你不知道处理一个消息需要多长时间,为你的消费者进程创建一个心跳。指定初始可见性超时(例如,2分钟),然后–只要你的消费者仍然在处理消息–保持每分钟延长2分钟的可见性超时。

改变信息的可见度超时

当你从队列中收到一条消息并开始处理它时,队列的可见性超时可能不够(例如,你可能需要处理并删除一条消息)。你可以通过使用ChangeMessageVisibility动作指定一个新的超时值来缩短或延长消息的可见性。
例如,如果一个队列的默认超时是60秒,从你收到消息到现在已经过了15秒,而你发送的ChangeMessageVisibility调用的VisibilityTimeout设置为10秒,那么这10秒就从你发出ChangeMessageVisibility调用的时候开始计算。因此,任何试图改变可见性超时或在你最初改变可见性超时(总共25秒)10秒后删除该消息的尝试都可能导致错误。

终止一个消息的可见性超时

当你从队列中收到一个消息时,你可能会发现你实际上并不想处理和删除这个消息。Amazon SQS允许你终止特定消息的可见性超时。这使得该消息对系统中的其他组件立即可见,并可用于处理。
要在调用ReceiveMessage后终止消息的可见性超时,请在VisibilityTimeout设置为0秒时调用ChangeMessageVisibility。

这篇关于aws SQS可视化超时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/518669

相关文章

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建