X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?p=living-lab-site.git;a=blobdiff_plain;f=cis%2Fcis_lb%2Fload_balancer%2Fbase.py;fp=cis%2Fcis_lb%2Fload_balancer%2Fbase.py;h=9586c88dcd9c14ffae157b5bd762897f4db3f797;hp=0000000000000000000000000000000000000000;hb=66dc2204a919e2c29b2aa9330ea18026d58540d9;hpb=009e9608b6f61dab87e91cb7a218f8074b8e2785 diff --git a/cis/cis_lb/load_balancer/base.py b/cis/cis_lb/load_balancer/base.py new file mode 100644 index 0000000..9586c88 --- /dev/null +++ b/cis/cis_lb/load_balancer/base.py @@ -0,0 +1,34 @@ +import threading +import urllib + +import logger + +class LoadBalancer(threading.Thread): + + def __init__(self, id, queue): + """ + Initialize Load Balancer, + """ + + threading.Thread.__init__(self, \ + name = '%s%02d' % (self.__class__.__name__, id)) + + self.queue = queue + + def run(self): + + while True: + (request, data) = self.queue.get() + + cis = self.choose() + logger.log_msg('Forwarding to %s' % cis, logger.LOG_LEVEL_DEBUG) + urllib.urlopen(cis + request, data) + + self.queue.task_done() + + def choose(self): + """ + Implement load balancing policy in this method for child classes which + choses a CIS from config.CIS_URLS . + """ + pass \ No newline at end of file