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

 奇异果产出国_706 发布于 2023-02-03 12:45

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

文档说:

如果一切顺利,write方法返回True.如果写入没有成功,它将返回False(意味着SQS只是因为某种原因选择不写入消息)或者如果请求存在某种问题则返回异常.

但实际上该方法只返回传入的消息.以下是来自https://github.com/boto/boto/blob/develop/boto/sqs/queue.py的相关源代码:

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

那么我的问题是:我如何真正判断写入是否成功?

1 个回答
  • 您提供的文档引用来自SQS教程.该SQS API文档准确地描述当前的返回值.SQS教程已经过时,需要更正.我创建了一个跟踪此问题的问题.

    如果写入由于任何原因失败,则服务将返回HTTP错误代码,这反过来将导致boto引发SQSError异常.如果没有引发异常,则写入成功.

    2023-02-03 12:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有