Skip to content

Instantly share code, notes, and snippets.

@bohde
Created February 11, 2011 02:56
Show Gist options
  • Save bohde/821848 to your computer and use it in GitHub Desktop.
Save bohde/821848 to your computer and use it in GitHub Desktop.
Patch Django with eventlet before it loads any connections
#!/usr/bin/env python
import os
import eventlet
import eventlet.debug
os.environ["EVENTLET_NOPATCH"] = 'True'
eventlet.monkey_patch()
eventlet.debug.hub_prevent_multiple_readers(False)
from django.core.management import execute_manager
try:
import 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(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
sys.exit(1)
if __name__ == "__main__":
execute_manager(settings)
@Morpho
Copy link

Morpho commented Jul 30, 2013

When you use Django together with MySQL, you should also patch MySQLdb, because otherwise it will block. Unfortunaly, eventlet does not do this by itself, so I did something like that: eventlet.monkey_patch(MySQLdb=True)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment