import boto3
sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName='my_queue')
print(queue.url)
print(queue.attributes.get('DelaySeconds'))
print(queue.attributes['MaximumQueueSize'])
print(queue.attributes['MessageRetentionPeriod'])
print(queue.attributes['CreatedTimestamp'])
确认两个调度程序是否使用相同的 AWS SQS 配置。
检查发送消息的代码是否正确,确保在发送消息时使用了正确的队列 URL。
可以增加消息的可见性超时时间,使消息更长时间处于不可见状态,避免在短时间内多次处理相同的消息。
import boto3
sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName='my_queue')
while True:
messages = queue.receive_messages(
VisibilityTimeout=3600, # 增加消息的可见性超时时间
WaitTimeSeconds=20
)
if len(messages) == 0:
print("No messages in queue")
break
for message in messages:
print(message.body)
message.delete()