Ejemplo n.º 1
0
    def loop(self):
        """
        The main read loop.
        """

        consul_config = self.config.consul_config
        consul = Consul(consul_config)

        services = consul.get_services()
        check_service_jobs = self.create_check_service_jobs(services)

        pool, pool_size = self.create_pool(self.config)

        while len(check_service_jobs) > 0:
            if len(check_service_jobs) >= pool_size:
                pool.map(check_service,
                         [check_service_jobs.pop()
                          for _ in range(pool_size)])
            else:
                pool.map(check_service,
                         [check_service_jobs.pop()
                          for _ in range(len(check_service_jobs))])

            time.sleep(self.config.sleep)

        pool.close()
        pool.join()