【问题标题】:how to use boto to get aws sqs message already in flight [closed]如何使用boto获取已经在飞行中的aws sqs消息[关闭]
【发布时间】:2015-02-20 03:16:22
【问题描述】:

我试过boto api,似乎没有api可以获取已经在运行的消息号?有没有人给我提示如何获得这个号码?

【问题讨论】:

    标签: amazon-web-services boto amazon-sqs


    【解决方案1】:

    要在 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 相当于控制台报告的飞行中统计信息。

    【讨论】:

    • 我试过你的脚本并且工作正常。谢谢
    • 对于较新版本的 boto,您可能需要更改为 sqs = boto3.resource('sqs') sqs_queue = sqs.get_queue_by_name(QueueName='yourqueue') messages = sqs_queue.attributes["ApproximateNumberOfMessages"]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 2012-08-07
    • 2013-02-03
    • 1970-01-01
    • 2012-04-28
    • 2022-01-27
    相关资源
    最近更新 更多