title: Backend processing for Django
body: <p>I'm working on a turn-based web game that will perform all world updates (player orders, physics, scripted events, etc.) on the server.  For now, I could simply update the world in a web request callback.  Unfortunately, that naive approach is not at all scalable.  I don't want to bog down my web server when I start running many concurrent games.</p>
  
  <p>So what is the best way to separate the load from the web server, ideally in a way that could even be run on a separate machine?</p>
  
  <ul>
  <li>A simple python module with infinite loop?</li>
  <li>A distributed task in something like <a href="http://celeryproject.org/" rel="nofollow noreferrer">Celery</a>?</li>
  <li>Some sort of cross-platform Cron scheduler?</li>
  <li>Some other fancy Django feature or third-party library that I don't know about?</li>
  </ul>
  
  <p>I also want to minimize code duplication by using the same model layer.  That probably means my service would need access to the Django model code, so that definitely determines how I architect the service.</p>