def poll(self): running = [worker for worker in self._workers if worker.is_alive()] diff = self.num_workers - len(running) if diff > 0: self.logger.debug('Starting %d workers, for a total of %d', diff, self.num_workers) with LoaderStorage.fork_wrapper(): running += [self._start_worker(i) for i in xrange(diff)] self._workers = running
def poll(self): running = [worker for worker in self._workers if worker.is_alive()] if self.idle_timeout is not None: if any([worker.is_working() for worker in self._workers]): self._last_work_time = time.time() elif time.time() > (self._last_work_time + self.idle_timeout): return False diff = self.num_workers - len(running) if diff > 0: self.logger.debug('Starting %d workers, for a total of %d', diff, self.num_workers) with LoaderStorage.fork_wrapper(): running += [self._start_worker(i) for i in xrange(diff)] self._workers = running return True
def start_server(self): if self.options.no_daemon: self.logger.warn( "There don't seem to be any running MemSQL Loader servers. " "Please start one.") if self.options.sync: self.logger.error( "You have specified --sync, but there are no running " "MemSQL Loader servers.") sys.exit(1) else: self.logger.info("Starting a MemSQL Loader server") if not self.options.sync: self.logger.info( "This load job will run in the background. You can " "monitor its progress with memsql-loader job %s" % (self.job.id)) with LoaderStorage.fork_wrapper(): ServerProcess(daemonize=True).start()