如何在不编写代码的情况下在亚马逊sqs中实现指数退避

2024-02-29

我有一个需要第三方的简单任务。 当请求到来时,我将其推送到amazon sqs队列,将其拉入工作人员并调用3rd party。如果超时,我想实现指数退避(在 2 秒内重试,然后是 4 秒,然后是 8 秒,然后......) 最大重试次数。

Using python, boto -> sqs

我一直在寻找内置参数,以允许我用尽可能少的代码来做到这一点(理想情况下,根本没有代码).

就像是

from boto import sqs

def handle_message(message):
    try:
      # send a post to api
    except TimeOut, err:
      # send_back_to_itself in 2/4/8 sec
      if delay < DELAY_LIMIT:
          queue.write(message, delay=secs)

我认为从 2021 年夏季开始,“完全没有代码”是不可能的。但是有一篇很棒的博客文章介绍了如何通过编码示例来做到这一点https://aws.amazon.com/blogs/compute/using-amazon-sqs-dead-letter-queues-to-replay-messages/ https://aws.amazon.com/blogs/compute/using-amazon-sqs-dead-letter-queues-to-replay-messages/

上面链接中的代码示例:

def handler(event, context):
    """Lambda function handler."""
    for record in event['Records']:
        nbReplay = 0
        # number of replay
        if 'sqs-dlq-replay-nb' in record['messageAttributes']:
            nbReplay = int(record['messageAttributes']['sqs-dlq-replay-nb']["stringValue"])

        nbReplay += 1
        if nbReplay > config.MAX_ATTEMPS:
            raise MaxAttempsError(replay=nbReplay, max=config.MAX_ATTEMPS)

        # SQS attributes
        attributes = record['messageAttributes']
        attributes.update({'sqs-dlq-replay-nb': {'StringValue': str(nbReplay), 'DataType': 'Number'}})

        _sqs_attributes_cleaner(attributes)

        # Backoff
        b = backoff.ExpoBackoffFullJitter(base=config.BACKOFF_RATE, cap=config.MESSAGE_RETENTION_PERIOD)
        delaySeconds = b.backoff(n=int(nbReplay))

        # SQS
        SQS.send_message(
            QueueUrl=config.SQS_MAIN_URL,
            MessageBody=record['body'],
            DelaySeconds=int(delaySeconds),
            MessageAttributes=record['messageAttributes']
        )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不编写代码的情况下在亚马逊sqs中实现指数退避 的相关文章

  • 如果 Excel 文件是由程序创建的,Pandas read_excel 对于具有简单公式的单元格返回 nan [重复]

    这个问题在这里已经有答案了 I use pd read excel读取由以下命令创建的 excel 文件openpyxl并从一个网址下载 解析后的数据框将给出nan如果单元格值是公式 which formula is simply 100
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • Keras model.predict 函数给出输入形状错误

    我已经在 Tensorflow 中实现了通用句子编码器 现在我正在尝试预测句子的类概率 我也将字符串转换为数组 Code if model model type universal classifier basic class probs
  • 如何计算数据框中按另一列的列值分组的一列的连续字符串值?

    我有以下数据框 Levels Labels Confidence 0 Hands 0 8 0 Leg 0 7 0 Eye 0 9 1 Ear 0 9 1 Eye 0 8 2 Hands 0 9 2 Eye 0 8 3 Eye 0 8 我想检
  • 类型错误:“datetime.datetime”和“str”的实例之间不支持“>”

    我是 python 日期和时间类型的新手 我有一个日期值 date 2018 11 10 10 55 31 00 00 我需要检查该日期值是否超过 90 天 我试过 from datetime import datetime from da
  • 查找正在导入哪些 python 模块

    从应用程序中使用的特定包中查找所有 python 模块的简单方法是什么 sys modules是将模块名称映射到模块的字典 您可以检查其键以查看导入的模块 See http docs python org library sys html
  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • Py2exe - Pmw WindowsError:[错误 3]

    我正在尝试使用 Py2exe 构建独立的可执行文件 我已经导入了 Pmw 类 当我运行独立可执行文件时 出现以下错误 Traceback most recent call last File py line 9 in
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • 更改 Matplotlib 投影轴的背景颜色

    我正在尝试使用 Cartopy 创建一个图形 该图形需要在未投影的轴上绘制投影轴 这是一个尽可能简单的代码版本 它将轴上的内容替换为背景颜色 import matplotlib pyplot as plt import cartopy cr
  • 使用 if 语句的网格网格和用户定义函数的真值不明确

    假设我有一个函数f x y 足够光滑 然而 有些值仅在有限的意义上存在 以sin x x的价值x 0只存在于极限 x gt 0 中 在一般情况下 我用一个来处理这个问题if陈述 如果我在情节中使用它meshgrid我收到一条错误消息 Val
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 如何按 pandas 中的值对系列进行分组?

    我现在有一只熊猫Series与数据类型Timestamp 我想按日期对其进行分组 并且每组中有许多行具有不同的时间 看似显而易见的方法类似于 grouped s groupby lambda x x date 然而 熊猫的groupby按索
  • 无需访问 Internet 即可部署 Django 的简单方法?

    我拥有的是使用 Django 开发的 Intranet 站点的开发版本以及放置在 virtualenv 中的一些外部库 它运行良好 我可以在任何具有互联网连接的计算机上使用相同的参数 使用 pip 轻松设置 virtualenv 但是 不幸
  • python中有没有一种方法可以将存储在列表中的正则表达式模式列表应用到单个字符串?

    我有一个正则表达式模式列表 存储在列表类型中 我想将其应用于字符串 有谁知道一个好方法 将列表中的每个正则表达式模式应用于字符串 和 如果匹配 则调用与列表中该模式关联的不同函数 如果可能的话我想用 python 来做这件事 提前致谢 im
  • 两种 ODE 求解器之间的差异

    我想知道 两者之间有什么区别ODEINT and solve ivp用于求解微分方程 它们之间有什么优点和缺点 f1 solve ivp f 0 1 y0 y0 is the initial point f2 odeint f y0 0 1
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import

随机推荐

  • Spring 事务不工作 + JAX WS + JDBC

    我对这个问题有点恼火 让我们检查一下是否有人实现了类似的东西 我有一个 java 8 Web 应用程序 实现了 8 WS 其中一些 WS 通过 JDBCTemplate 进行插入和更新 由于性能需求 Hibernate 不是一个选择 如果执
  • 如何正确设置一个商店作为您的网络应用程序中的单个指针

    我有一家本土商店 有一个简单的身份映射 当我从中返回模型数组并将其绑定到控制器 模型 时 它反映了您的期望 当您第一次点击路线时 它会在模板中反映为 你会期望 但稍后 如果我获得相同的商店实例 它是单例 并将对象推送到 IdentityMa
  • Git:获取存储库中未提交行的总数

    有没有一个命令可以获取总数lines当前 git 存储库中已更改的内容 我想数数考虑分阶段和非分阶段 files 这是我能得到的最接近的 git diff cached shortstat 1 file changed 1 insertio
  • 如何在Android上读取Sim原始数据?

    有没有办法读取 Sim 卡的 原始 数据 类似于如何用SmsMessage读取原始数据这是Pdu 如需读取SIM卡相关信息 您需要电话管理器 API http developer android com reference android
  • Java java.util.logging.logger。使用数组对象作为参数

    java util logging Logger 类提供了使用这种语法的能力 int i 0 log log Level INFO int i 0 i 这将打印出 int i 0 不幸的是 当我有一个更大的值时 比如 9093 它会打印出
  • 为什么无法从命令行从 C:\SysWOW64 复制 DLL?

    我知道我所做的事情很奇怪 请不要担心 什么是正在发生然而 这绝对是疯狂的 如果我尝试从以下位置复制 DLL 文件C SysWOW32 从命令行使用copy在 Windows 7 64 位上 我实际上最终得到了其中的文件C System32
  • Clojure 和 Python 中的惰性无限序列

    以下是我能在 Clojure 和 Python 中找到的斐波那契数列的惰性无限序列的最佳实现 Clojure def fib seq lazy cat 0 1 map fib seq rest fib seq 示例用法 take 5 fib
  • 为什么活动存储记录id为空并且上传太慢

    我正在使用最新的 Rails 和 ruby 进行新项目 我正在使用Active Storage用于将文件 图像和视频 上传到GCP 当我上传大约 13 18 张图像的多个文件时 上传时间太长 当我在完成后检查我的数据库时 我的record
  • 从 jsp 中的下拉列表中选择值后替换并显示新页面

    我有一个仪表板 其中有多个下拉值 其中一个下拉值具有当被选择并单击提交按钮时的值 它将现有的页面设计替换为新的页面设计 谁能指导我如何使用 JSP 和 servlet 实现这一目标 我能想到的就是使用 JavaScript 并打开一个新窗口
  • 错误:android:exported 需要为元素显式指定

    我有这个错误 app src main AndroidManifest xml 27 9 33 20 错误 android exported 需要为元素 显式指定 面向 Android 12 及更高版本的应用需要指定显式值android e
  • 为什么 jquery fadeIn() 不能与 .html() 一起使用?

    当您单击复选框时 我希望消息慢慢淡入 为什么 fadeIn 在此示例中不起作用 HTML
  • iPhone/iPad 应用程序未出现在 iPad 应用程序商店中

    我们正在使用 xcode 4 5 2 开发我们的第一个 iPhone 和 iPad 应用程序 它是一款通用应用程序 目标设备系列为 iPhone iPad 在 iPhone 和 iPad 模拟器上运行良好 但分发给 Apple 后 它只出现
  • 在 Mac 上调整窗口大小时 JavaFX 崩溃

    我使用的 Mac 配备最新版本的 Java FX macOS 以及 IntelliJ IDEA CE 问题是 当我调整 JavaFX 窗口大小时 我的 Mac 立即崩溃 只有当我按下电源按钮五秒钟时 MacBook 才会重新启动 我创建了一
  • 有没有办法使用增量更新 SQLITE 数据库?

    我想知道 SQLite 是否提出了基于某些增量文件的更新机制 例如 Oracle 数据库可以与 sql 重做日志或快照日志同步 SQLite是否提出了一种优化机制来更新自身 我的用例如下 我有一个本地数据库 必须与一些远程数据同步 在理想的
  • 密码验证失败,密码复杂

    我编写了一个 Python 脚本 它使用以下命令连接到本地 PostgreSQL 数据库psycopg2 2 6 and Python 2 7 8 连接设置和命令如下 HOST 127 0 0 1 DATABASE NAME myappda
  • Android - 处理构建未编译

    我在 IDE 处理方面遇到问题 我正在尝试将一些东西编译到Android 上 当然 我使用的是 Android 模式 但我在编译时收到此错误 这不是代码本身 我已经安装了 adb devices 看起来没问题 我已经完成了所有 51 and
  • 以编程方式取消选中 datagridview 中的 checkboxcolumn

    如何以编程方式取消选中 datagridview 中 DataGridViewCheckboxColumn 中的所有行 我可以使用以下方法获取复选框的正确值 bool row Cells CheckBoxColumn Index Forma
  • Twitter 主页中的 jQuery“下推”列表

    我需要一个像 Twitter 主页一样的 jQuery 列表 这意味着 列出许多帖子 然后在 X 秒后 在列表顶部插入另一个帖子 产生效果 并将其余帖子向下推 具体如何执行此操作取决于您要添加的内容 但是 作为基本原则 您可以遵循以下方法
  • 无法返回给定上下文中的结果集

    当我尝试调用 mysql 中的存储过程发送回结果集时 它一直告诉我 无法在给定上下文中返回结果集 我用谷歌搜索了一下 有些人说这是 mysql bug 有些人说你应该改变你的 mysqli 驱动程序 情况 使用mysqli驱动程序客户端AP
  • 如何在不编写代码的情况下在亚马逊sqs中实现指数退避

    我有一个需要第三方的简单任务 当请求到来时 我将其推送到amazon sqs队列 将其拉入工作人员并调用3rd party 如果超时 我想实现指数退避 在 2 秒内重试 然后是 4 秒 然后是 8 秒 然后 最大重试次数 Using pyt