7 class LoadBalancer(threading.Thread):
9 def __init__(self, id, queue):
11 Initialize Load Balancer,
14 threading.Thread.__init__(self, \
15 name = '%s%02d' % (self.__class__.__name__, id))
22 (request, data) = self.queue.get()
23 urls = config.CIS_URLS[:]
26 cis = self.choose(urls)
28 # Request is forwarded to the chosen CIS.
30 urllib.urlopen(cis + request, data)
32 logger.log_msg('Failed to forward request to %s' % cis, \
33 logger.LOG_LEVEL_ERROR)
36 logger.log_msg('Request forwarded to %s' % cis, \
37 logger.LOG_LEVEL_INFO)
40 self.queue.task_done()
42 def choose(self, urls):
44 Implement load balancing policy in this method for child classes which
45 choses a CIS from urls parameter. The chosen URL should be deleted from