Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何判断boto.sqs.Queue.write()是否成功?_Python_Amazon Web Services_Boto_Amazon Sqs - Fatal编程技术网

Python 如何判断boto.sqs.Queue.write()是否成功?

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教程已经过时,需要更正。我创建了一

我能找到的所有关于该方法的文档都说Queue.write返回True或False,这取决于写入是否成功,但这与实际情况不符

文件说:

如果一切顺利,write方法将返回True。如果 如果未成功,它将返回False(表示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