rabbitmq_core.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:_ 作者: zengchunyun 项目源码 文件源码
def start(self, cmd, routing_key="remote.call"):
        self.response = []  # ??????????
        self.correlation_id = str(uuid.uuid4())
        self.log.info("exec command {}".format(cmd))
        self.log.debug("routing key {}".format(routing_key))
        self.channel.basic_publish(exchange=self.exchange,
                                   routing_key=routing_key,  # ?routing key???????????????routing key???
                                   properties=pika.BasicProperties(
                                       reply_to=self.queue_name,
                                       correlation_id=self.correlation_id
                                   ),
                                   body=cmd)
        before = time.monotonic()  # ??????????
        after_len = 0  # ?????????????
        while True:
            if len(self.response) != after_len:  # ?????????,????????????
                before_len = len(self.response)
            else:
                before_len = after_len  # ????????????????????????????,??????,????????,?????????
                time.sleep(0.4)
            self.connection.process_data_events()  # ??????,?????????????
            if len(self.response) == before_len and before_len:
                break
            after = time.monotonic()  # ?????????????
            if (after - before) > self.timeout:  # ???????16s,?????????
                break
        return self.response  # ??????????
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号