Python 2.7 从软层消息队列读取
我正在使用SoftLayer的消息队列服务。我已经创建了一个队列,其中包含一些消息,我正试图从Python脚本中读取它们 我已经安装了以下Python包。以下是我的测试文件的外观:Python 2.7 从软层消息队列读取,python-2.7,message-queue,Python 2.7,Message Queue,我正在使用SoftLayer的消息队列服务。我已经创建了一个队列,其中包含一些消息,我正试图从Python脚本中读取它们 我已经安装了以下Python包。以下是我的测试文件的外观: from softlayer_messaging.queue import Queue, Message from softlayer_messaging.compat import json from softlayer_messaging.auth import QueueAuth from softlayer_
from softlayer_messaging.queue import Queue, Message
from softlayer_messaging.compat import json
from softlayer_messaging.auth import QueueAuth
from softlayer_messaging.errors import Unauthenticated
if __name__ == '__main__':
endpoint = "{I'm using the public host from my Message Queue credentials}"
username = "{My username}"
api_key = "{My API account key}"
auth_token = None
auth = QueueAuth(
endpoint, username, api_key,
auth_token=auth_token)
auth.auth()
queue = Queue(endpoint, "domains", auth)
print queue.detail()
如果我在调用auth.auth()方法后显示auth\u标记,那么它会显示一个随机字符串,因此我相信身份验证是正确完成的
问题在于queue.detail()方法引发以下异常:
File "test1.py", line 23, in <module>
print queue.detail()
File "/usr/local/lib/python2.7/site-packages/softlayer_messaging/queue.py", line 24, in detail
return self.get().json
File "/usr/local/lib/python2.7/site-packages/softlayer_messaging/resource.py", line 23, in get
return self.request('GET', *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/softlayer_messaging/queue.py", line 20, in request
resp.raise_for_status()
File "/usr/local/lib/python2.7/site-packages/softlayer_messaging/resource.py", line 84, in raise_for_status
raise ResponseError("%s: %s" % (code, message), errors)
softlayer_messaging.errors.ResponseError: 404: Not found
文件“test1.py”,第23行,在
打印队列。详细信息()
文件“/usr/local/lib/python2.7/site packages/softlayer_messaging/queue.py”,第24行,详细信息
返回self.get().json
文件“/usr/local/lib/python2.7/site packages/softlayer_messaging/resource.py”,get第23行
返回self.request('GET',*args,**kwargs)
请求中的文件“/usr/local/lib/python2.7/site packages/softlayer_messaging/queue.py”,第20行
针对_状态的相应提升_()
文件“/usr/local/lib/python2.7/site packages/softlayer_messaging/resource.py”,第84行,处于raise_for_状态
raise ResponseError(“%s:%s”%(代码、消息),错误)
softlayer_messaging.errors.ResponseError:404:未找到
我能够连接到队列并从PHP脚本读取消息,因此我非常确定问题不在于队列本身。你知道我做错了什么吗
非常感谢您的帮助。我能够找到答案,以下是我的代码:
import softlayer_messaging
if __name__ == '__main__':
client = softlayer_messaging.get_client('{queue_account_id}', endpoint='https://dal05.mq.softlayer.net/')
client.authenticate('{username}', '{api_key}')
messages = client.queue('{queue_name}').pop(10)
if 'item_count' in messages and 'items' in messages and messages['item_count'] > 0:
for message in messages['items']:
print message['body']
对于其他端点,可以在中找到更多示例