Python 如何判断boto.sqs.Queue.write()是否成功?
我能找到的所有关于该方法的文档都说Queue.write返回True或False,这取决于写入是否成功,但这与实际情况不符 文件说: 如果一切顺利,write方法将返回True。如果 如果未成功,它将返回False(表示SQS只是选择 不写消息(出于某种原因)或异常(如果有) 这个请求有点问题 但实际上,该方法只是返回传入的消息。以下是来自以下网站的相关源代码:Python 如何判断boto.sqs.Queue.write()是否成功?,python,amazon-web-services,boto,amazon-sqs,Python,Amazon Web Services,Boto,Amazon Sqs,我能找到的所有关于该方法的文档都说Queue.write返回True或False,这取决于写入是否成功,但这与实际情况不符 文件说: 如果一切顺利,write方法将返回True。如果 如果未成功,它将返回False(表示SQS只是选择 不写消息(出于某种原因)或异常(如果有) 这个请求有点问题 但实际上,该方法只是返回传入的消息。以下是来自以下网站的相关源代码: 那么我的问题是:如何真正判断编写是否成功?您提供的文档引用来自SQS教程。正确描述当前返回值。SQS教程已经过时,需要更正。我创建了一
那么我的问题是:如何真正判断编写是否成功?您提供的文档引用来自SQS教程。正确描述当前返回值。SQS教程已经过时,需要更正。我创建了一个用于跟踪此的
如果由于任何原因写入失败,服务将返回HTTP错误代码,这将导致boto引发SQSError异常。如果没有出现异常,说明编写成功。谢谢,非常有帮助。Boto方法通常会引发异常而不是返回错误,这是真的吗?我没有看到你链接的文档中提到异常。是的,通常情况就是这样。由于大多数API调用在服务之间是相似的,因此进行调用的实际代码在模块之间共享。所有的Amazon Web服务都使用HTTP错误代码来传递状态。因此,boto会检查这些HTTP响应代码,并在检测到错误时引发Python异常。我们应该更好地记录可以提出的异常。
def write(self, message, delay_seconds=None):
"""
Add a single message to the queue.
:type message: Message
:param message: The message to be written to the queue
:rtype: :class:`boto.sqs.message.Message`
:return: The :class:`boto.sqs.message.Message` object that was written.
"""
new_msg = self.connection.send_message(self,
message.get_body_encoded(),
delay_seconds)
message.id = new_msg.id
message.md5 = new_msg.md5
return message