title: Changing Django's ROOT_URLCONF
body: <p>We are building a multi tenant website, and some tenants want different URLs and such. No big deal, and this is something we already have fixed by making multiple urls.py which can serve as <code>ROOT_URLCONF</code>. When it comes to a request, we simply use our middleware which sets <code>request.urlconf</code>. So far, so good.</p>
  
  <p>But we are also running Celery for a bunch of nightly tasks, and one of those is sending out emails. Here we don't have a <code>request</code> (obviously), so we can't use that to switch the <code>ROOT_URLCONF</code> that way. But changing <code>django.conf.settings.ROOT_URLCONF</code> doesn't work either (which is kinda logical). Is there any way to switch the URLConf that's being used "mid-process"?</p>
  
  <p>It isn't really an option to run multiple Celery instances, each with their own settings because not all objects can be efficiently linked to the tenant they belong to (the views are different, we start with a <code>User</code> which knows it's tenant).</p>