#!/usr/bin/env python from django.core.management import execute_manager import gevent import imp import logging import os import sys old_spawn = gevent.spawn spawned_threads = [] def new_spawn(*args, **kwargs): thread = old_spawn(*args, **kwargs) spawned_threads.append(thread) gevent.sleep(0) return thread gevent.spawn = new_spawn try: imp.find_module('settings') # Assumed to be in the same directory. except ImportError: import sys sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__) sys.exit(1) import settings if __name__ == "__main__": # Ideally we want this owrking on prod if len(sys.argv) > 1 and 'celery' not in sys.argv[1]: from gevent import monkey monkey.patch_all() execute_manager(settings) logging.info('Starting Telapi.') if len(spawned_threads): gevent.joinall(spawned_threads)