AWSSQS发送了4条消息,但Lambda却被调用了两次
创始人
2024-09-27 12:30:26
0

这个问题可能是由于多个 Lambda 实例以不同的速度读取和处理 SQS 消息队列中的消息所导致的。因此,我们需要使用可重入锁来确保只有一个实例能够读取和处理消息。

示例代码:

import threading
import boto3

lock = threading.Lock()
sqs = boto3.client('sqs')
queue_url = 'https://sqs.us-east-1.amazonaws.com/123456789012/myqueue'

def lambda_handler(event, context):
    messages = []
    with lock:
        try:
            response = sqs.receive_message(
                QueueUrl=queue_url,
                MaxNumberOfMessages=10,
                WaitTimeSeconds=20,
                VisibilityTimeout=60
            )

            if 'Messages' in response:
                messages = response['Messages']
        except Exception as e:
            print('Error: {}'.format(str(e)))
        
        # Process messages
        for message in messages:
            # Your processing code goes here
            print(message['Body'])

            # Delete message
            sqs.delete_message(
                QueueUrl=queue_url,
                ReceiptHandle=message['ReceiptHandle']
            )

在上面的代码中,我们使用了 Python 中的 threading.Lock() 函数来创建了一个可重入锁,用来确保只有一个 Lambda 实例能够访问 SQS 消息队列。在 with lock: 语句块中,我们使用了 SQS 的 receive_message() 方法来读取最多 10 条消息。然后在 for 循环中,我们遍历了每个消息并进行处理,最后调用了 SQS 的 delete_message() 方法来删除已处理的消息。

使用可重入锁是一种避免 AWS SQS 与 Lambda 之间的竞争条件的方法,可以确保只有一个实例处理消息。

相关内容

热门资讯

wepoker软件辅助程序!w... wepoker软件辅助程序!wpk软件是真的吗(透视)攻略-切实详细是真的挂暗藏猫腻,小编详细说明w...
wepoker有插件吗!wep... wepoker有插件吗!wepoker私人局开挂视频(透视)技巧-原来揭幕存在有挂1、实时wepok...
hhpoker辅助靠谱吗!we... hhpoker辅助靠谱吗!wepoker轻量版有透视吗(透视)脚本-竟然有挂真的是有挂1)wepok...
pokemmo脚本手机版!约局... pokemmo脚本手机版!约局吧开挂(透视)器-真是曝光是真的挂pokemmo脚本手机版破解侠是真的...
wpk德州局怎么透视!wepo... wpk德州局怎么透视!wepoker透视有没有(透视)技巧-果然普及是真的挂暗藏猫腻,小编详细说明w...
wepoker怎么看底牌!hh... wepoker怎么看底牌!hhpoker脚本(透视)app-切实总结是真的挂1、下载好wepoker...
竞技联盟破解版最新版!约局吧德... 竞技联盟破解版最新版!约局吧德州可以透视吗(透视)教程-都是详细真的是有挂1、下载好约局吧德州可以透...
wpk辅助插件!hhpoker... wpk辅助插件!hhpoker破解工具(透视)软件-一贯解谜真的是有挂1、hhpoker破解工具透视...
德州机器人代打脚本!德州局透视... 德州机器人代打脚本!德州局透视脚本(透视)技巧-都是分享是有挂1、不需要AI权限,帮助你快速的进行德...
佛手在线是不是有挂!拱趴大菠萝... 佛手在线是不是有挂!拱趴大菠萝怎么开挂(透视)攻略-原来必备存在有挂1、完成佛手在线是不是有挂有辅助...