如何在不编写代码的情况下在亚马逊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中实现指数退避 的相关文章

  • 如何将 Jupyter Notebook 的代码片段与 VSCode 结合使用?

    我已经使用 VSCode 一段时间了 目前我正在尝试设置代码片段来工作 它们似乎适用于简单的 Python py 文件 但不适用于 Jupyter Notebook ipynb 文件 有什么办法可以让他们一起工作吗 片段就在这里 Creat
  • 在 HSV 颜色空间内定义组织学图像掩模的颜色范围(Python、OpenCV、图像分析):

    为了根据颜色将组织学切片分成多个层 我修改了 OpenCV 社区提供的一些广泛分布的代码 1 我们的染色程序用不同的颜色标记组织横截面的不同细胞类型 B 细胞为红色 巨噬细胞为棕色 背景细胞核为蓝色 I m interested in se
  • 如何分组显示argparse子命令?

    对于具有许多子命令的程序 我想在 help 输出中显示它们按逻辑分组 Python argparse 有一个add argument group http docs python org library argparse html argp
  • 有没有办法拥有租户特定的 JWT 令牌

    我目前正在开发一个 SPA 应用程序 角度 后端使用 Python Flask API 该应用程序将支持多个租户 我对安全概念有点挣扎 我目前正在使用 jwt extend 颁发的 JWT 令牌对所有租户都有效 我当然可以从令牌中获取用户
  • Python 中的自然日/相对日

    我想要一种在 Python 中显示日期项目的自然时间的方法 类似于 Twitter 将显示 刚才 几分钟前 两小时前 三天前 等消息 Django 1 0 在 django contrib 中有一个 人性化 方法 我没有使用 Django
  • 代码运行时出现内存问题(Python、Networkx)

    我编写了一个代码来生成具有 379613734 条边的图 但由于内存问题 代码无法完成 当经过 6200 万行时 大约会占用服务器内存的 97 所以我杀了它 您有解决这个问题的想法吗 我的代码是这样的 import os sys impor
  • Python 中字典的合并层次结构

    我有两本词典 而我想做的事情有点奇怪 基本上 我想合并它们 这很简单 但它们是字典的层次结构 我想以这样的方式合并它们 如果字典中的项目本身就是字典并且存在于两者中 我也想合并这些字典 如果它不是字典 我希望第二个字典中的值覆盖第一个字典中
  • 在 Flask 中将配置文件作为字典读取

    在 instance app cfg 我已经配置 test test 在我的烧瓶文件 app py 中 with app open instance resource app cfg as f config f read print con
  • 带剖面的 3D 曲面图

    基本上 我有一个由一组时间序列组成的曲面图 我想在特定高度添加剖面图 以更好地了解一年中值高于所选阈值的时期 由此 其中显示平面但不是剖面 To This 有什么建议吗 使用 alpha 和相机仰角并没有解决问题 平面似乎仍然在人物的前面
  • XGBOOST 功能名称错误 - Python

    也许这个问题已经以不同的形式被问过很多次了 但是 我的问题是当我使用XGBClassifier 对于像数据这样的产品 我收到功能名称不匹配错误 我希望有人能告诉我我做错了什么 这是我的代码 顺便说一句 数据完全是编造的 import pan
  • 如何在 Python 中从 C++/C# 紧密实现 ?: ?

    在 C 中 我可以轻松编写以下内容 string stringValue string IsNullOrEmpty otherString defaultString otherString 有没有一种快速的方法可以在 Python 中做同
  • Python 结构的 PHP 替代品

    我很高兴在我的 Python 项目中使用 Fabric 进行部署 现在我正在从事一个更大的 PHP 项目 想知道是否有类似 PHP 的 Fabric 之类的东西 唔 为什么这有关系 Fabric 只是 python 脚本 所以它与项目语言无
  • 从 SQL 数据库导入表并按日期过滤行时,将 Pandas 列解析为日期时间

    我有一个DataFrame列名为date 我们如何将 日期 列转换 解析为DateTime object 我使用 Postgresql 数据库加载日期列sql read frame 的一个例子date列是2013 04 04 我想做的是选择
  • 有没有比 ` except: pass` 更简洁的替代方案?

    我有一个函数 可以按偏好顺序返回多个组的随机成员 事情是这样的 def get random foo or bar I d rather have a foo than a bar if there are foos return get
  • Python - 根据条件调用函数

    我想知道是否有一种简洁的方法来根据条件调用函数 我有这个 if list 1 some dataframe df myfunction 我想知道这是否有可能三元运算符 http book pythontips com en latest t
  • 向多个 EC2 实例发送 AWS CloudWatch 警报

    我想要应用 CloudWatch 警报来停止我们的预生产环境中未使用的实例 我们经常会遇到实例被启动 使用然后保持打开状态 这确实开始花费我们相当多的钱 CloudWatch 警报有一个方便的功能 我们可以根据一些指标停止 这太棒了 我想用
  • 为什么使用 LAMP 托管时避免使用 CGI for Python?

    我已经使用 PHP 多年了 最近我在论坛上看到很多帖子说PHP 已经过时了 现代编程语言更简单 更安全等等 所以 我决定开始学习Python 由于我习惯使用 PHP 因此我刚刚开始通过上传 htaccess 文件来构建页面 addtype
  • 检查一个数是否是完全平方数

    如何检查一个数是否是完全平方数 速度并不重要 目前 只是工作 See also Integer square root in python https stackoverflow com questions 15390807 依赖任何浮点计
  • Python DNS服务器IP地址查询

    我正在尝试使用 python 获取 DNS 服务器 IP 地址 要在 Windows 命令提示符下执行此操作 我将使用 ipconfig 全部 如下所示 我想使用 python 脚本做同样的事情 有什么方法可以提取这些值吗 我成功提取了设备
  • 网站可以检测您何时将 Selenium 与 chromedriver 结合使用吗?

    我一直在使用 Chromedriver 测试 Selenium 我注意到有些页面可以检测到您正在使用 Selenium 即使根本没有自动化 即使我只是通过 Selenium 使用 Chrome 手动浏览 Xephyr https en wi

随机推荐

  • 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