def spawn_workers(self): workers = set(w.id for w in self.WORKERS.values()) for i in range(self.num_workers): if i in workers: continue worker = Worker(i, self.pid, self.LISTENER, self.modname, self.timeout / 2.0) pid = os.fork() if pid != 0: self.WORKERS[pid] = worker continue # Process Child worker_pid = os.getpid() try: log.info("Worker %s booting" % worker_pid) worker.run() sys.exit(0) except SystemExit: raise except: log.exception("Exception in worker process.") sys.exit(-1) finally: worker.tmp.close() log.info("Worker %s exiting." % worker_pid)
def spawn_workers(self): workers = set(w.id for w in self.WORKERS.values()) for i in range(self.num_workers): if i in workers: continue # 监听的 socket 给 worker worker = Worker(i, self.pid, self.LISTENER, self.modname, self.timeout) pid = os.fork() if pid != 0: self.WORKERS[pid] = worker continue # Process Child worker_pid = os.getpid() try: self.log.info("Worker %s booting" % worker_pid) worker.run() sys.exit(0) except SystemExit: raise except: self.log.exception("Exception in worker process.") sys.exit(-1) finally: worker.tmp.close() self.log.info("Worker %s exiting." % worker_pid)
def __init__(self, *args, **kwargs): Worker.__init__(self, *args, **kwargs) self.nb_connections = 0 self.worker_connections = self.conf.worker_connections