def start(self, profile=0): import sys import thread import pdconf #from rpcserver import rpc_server from pydirector import pdadmin from pdnetwork import mainloop if self.conf.admin is not None: pdadmin.start(adminconf=self.conf.admin, director=self) self.manager.start() server,port = pdconf.splitHostPort(self.conf.rpcserver) thread.start_new_thread (self.rpc_server, (server, port,)) try: if profile: import hotshot print "creating profiling log" prof = hotshot.Profile("pydir.prof") try: prof.runcall(mainloop) finally: print "closing profile log" prof.close() else: mainloop(timeout=4) except KeyboardInterrupt: sys.exit(0)
def createListeners(self): from pydirector import pdnetwork, pdconf for service in self.conf.getServices(): self.createSchedulers(service) eg = service.getEnabledGroup() scheduler = self.getScheduler(service.name, eg.name) # handle multiple listeners for a service self.listeners[service.name] = [] for lobj in service.listen: l = pdnetwork.Listener(service.name, pdconf.splitHostPort(lobj), scheduler) self.listeners[service.name].append(l)