def run(self): """Start apscheduler tasks""" jobstores = {'mongo': MongoDBJobStore()} executors = { 'default': ThreadPoolExecutor(self.poolsize), 'processpool': ProcessPoolExecutor(self.procsize) } job_defaults = {'coalesce': False, 'max_instances': 3} scheduler = GeventScheduler() scheduler.configure(jobstores=jobstores, executors=executors, job_defaults=job_defaults, timezone=utc) scheduler.add_job(self.job_worker, 'interval', seconds=0.001) green_let = scheduler.start() print('Ctrl+{0} to exit.'.format('Break' if os.name == 'nt' else 'C')) # Execution will block here util Ctrl+C (Ctrl+Break on Windows). try: green_let.join() except (KeyboardInterrupt, SystemExit): pass