def __init__(self, config_file='defaults.cfg'): self.config = ConfigParser.SafeConfigParser() self.config.readfp(open(config_file)) cache.database.init(self.config.get('indexer', 'cache_file')) Group.create_table(True) Article.create_table(True) max_nntp = self.config.getint('indexer', 'max_connections') self.nntp_semaphore = threading.BoundedSemaphore(max_nntp) max_task = 5 self.task_queue = Queue() self.task_runners = [] for i in xrange(max_task): runner = threading.Thread(target=self.task_runner) runner.daemon = True self.task_runners.append(runner) runner.start()