【发布时间】:2015-02-20 03:16:22
【问题描述】:
我试过boto api,似乎没有api可以获取已经在运行的消息号?有没有人给我提示如何获得这个号码?
【问题讨论】:
标签: amazon-web-services boto amazon-sqs
我试过boto api,似乎没有api可以获取已经在运行的消息号?有没有人给我提示如何获得这个号码?
【问题讨论】:
标签: amazon-web-services boto amazon-sqs
要在 boto 中查找正在传输的消息或 SQS 队列的任何其他属性,您需要执行以下操作:
import boto.sqs
c = boto.sqs.connect_to_region('us-east-1')
queue = c.lookup('myqueue')
attr = queue.get_attributes()
这将是一个如下所示的 Python 字典:
{u'ApproximateNumberOfMessages': u'0',
u'ApproximateNumberOfMessagesDelayed': u'0',
u'ApproximateNumberOfMessagesNotVisible': u'0',
u'CreatedTimestamp': u'1412270007',
u'DelaySeconds': u'0',
u'LastModifiedTimestamp': u'1412270007',
u'MaximumMessageSize': u'262144',
u'MessageRetentionPeriod': u'345600',
u'QueueArn': u'arn:aws:sqs:us-east-1:723405645490:16ac1da3-564c-43aa-8dcb-4db41ece50ea',
u'ReceiveMessageWaitTimeSeconds': u'0',
u'VisibilityTimeout': u'30'}
我相信ApproximateNumberOfMessagesNotVisible 相当于控制台报告的飞行中统计信息。
【讨论】:
sqs = boto3.resource('sqs') sqs_queue = sqs.get_queue_by_name(QueueName='yourqueue') messages = sqs_queue.attributes["ApproximateNumberOfMessages"]