def publish(self, dict): global rpc_subscriber while rpc_subscriber.consumer_tag is None: continue props = BasicProperties() props.reply_to = rpc_subscriber.queue_name props.correlation_id = str(uuid.uuid4()) try: rpc_subscriber.rpc_data[props.correlation_id] = Event() self.publisher.publish(dict, props) except: self.logger.exception("Error publishing rpc message") del rpc_subscriber.rpc_data[props.correlation_id] props.correlation_id = None self.publisher.close() return props.correlation_id