title: Is there a way to deploy new code with Tornado/Python without restarting the server?
body: <p>I've recently started to experiment with Python and Tornado web server/framework for web development.  Previously, I have used PHP with my own framework on a LAMP stack.  With PHP, deploying updated code/new code is as easy as uploading it to the server because of the way mod_php and Apache interact.</p>
  
  <p>When I add new code or update code in Python/Tornado, do I need to restart the Tornado server?  I could see this being problematic if you have a number of active users.</p>
  
  <p>(a) Do I have to restart the server, or is there another/better way?</p>
  
  <p>(b) If so, how can I avoid users being disconnected/getting errors/etc. while it's restarting (which could take a few seconds)?</p>
  
  <p>[One possible thought is to use the page flipping paradigm with Nginx pointing to a server, launch the new server instance with updated code, redirect Nginx there and take down the original server...?]</p>