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

相关文章

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景   当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术,在大数据分析中,是一个非常重要的关键部分。我们前期通过数据获取,数据处理,数据分析,得出结果,这些过程都是比较抽象的。如果是非数据分析专业人员,很难清楚我们这些工作,到底做了些什么事情。即使是专业人员,在不清楚项目,不了解业务规则,不熟悉技术细节的情况下。要搞清楚我们的大数据分析,这一系列过程,也是比较困难的。 我们在数据处理和分析完成后,一般来说,都需要形成结论报告。怎样让大

11Python的Pandas:可视化

Pandas本身并没有直接的可视化功能,但它与其他Python库(如Matplotlib和Seaborn)无缝集成,允许你快速创建各种图表和可视化。这里是一些使用Pandas数据进行可视化的常见方法: 1. 使用Matplotlib Pandas中的plot()方法实际上是基于Matplotlib的,你可以使用它来绘制各种基本图表,例如折线图、柱状图、散点图等。 import pandas

【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)「首先来看看目前已有的资料,还会不断更新哦~一次购买,后续不会再被收费哦,保证是全网最全资源,随着后续内容更新,价格会上涨,越早购买,价格越低,让大家再也不需要到处买断片资料啦~💰💸👋」�

Python利用pyecharts实现数据可视化

小编会持续更新知识笔记,如果感兴趣可以三连支持。闲来无事,水文一篇,不过上手实践一下倒还是挺好玩的,这一块知识说不定以后真可以尝试拿来做数据库的报表显示。         有梦别怕苦,想赢别喊累。 目录 前言 JSON数据格式的转换 pyecharts简介和入门使用 前言       小编我今天闲来无事,打算学习一下py,结果你猜怎么着,竟然看到py可以将数据

【mysql zeppelin】zeppelin 大数据可视化分析工具安装教程精要

Apache Zeppelin是一款大数据分析和可视化工具,可以让数据分析师在一个基于Web页面的笔记本中,使用不同的语言,对不同数据源中的数据进行交互式分析,并对分析结果进行可视化的工具。下面我们主要讲解如何安装和配置的精要部分。 一、zeppelin 安装和配置登录用户 官方网站: https://zeppelin.apache.org/ 下载地址: https://zeppelin

【R语言可视化】R语言画爱心图

数学系也可以很浪漫~~ rm(list=ls())library(grid)heart <- function(lcolor){t=seq(0, 2*pi, by=0.1)x=16*sin(t)^3y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)a=(x-min(x))/(max(x)-min(x))b=(y-min(y))/(max(y)-min(y))g

【R语言 可视化】R语言画雷达图

1、安装插件 github网址: https://github.com/ricardo-bion/ggradar devtools::install_github("ricardo-bion/ggradar")install.packages("knitr") 2、效果图 3、源代码 rm(list=ls())gc()library(ggradar)mydata<-ma