<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def connect(self):
 """This method connects to RabbitMQ using a SelectConnection object, returning the connection handle. When the connection is established, the on_connection_open method will be invoked by pika. :rtype: pika.SelectConnection """


        count = 1
        no_of_servers = len(self._rabbit_urls)

        while True:
            server_choice = (count % no_of_servers) - 1

            self._url = self._rabbit_urls[server_choice]

            try:
                logger.info('Connecting', attempt=count)
                return pika.SelectConnection(pika.URLParameters(self._url),
                                             self.on_connection_open,
                                             stop_ioloop_on_close=False)
            except pika.exceptions.AMQPConnectionError:
                logger.exception("Connection error")
                count += 1
                logger.error("Connection sleep", no_of_seconds=count)
                time.sleep(count)

                continue