One of the things I like about Google App Engine development environment is, I don’t have to restart the server every time I make changes to any python source files, other static files or even configuration files. It has spoilt me and I forget to restart the server when I am working with other server environments (tornadoweb, web.py, node.js).
Can anyone explain how GAE does that? How difficult is it to make other servers (at least python based) to achieve the same thing?
You can view the source for
dev_appserver.py(link). Looks likeModuleManagermakes a copy ofsys.modulesand monitors each module to track changes based on time:http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/tools/dev_appserver.py#3636