Example #1
0
    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)
Example #2
0
    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)
Example #3
0
 def __init__(self, *args, **kwargs):
     Worker.__init__(self, *args, **kwargs)
     self.nb_connections = 0
     self.worker_connections = self.conf.worker_connections