Модули перезагрузки процесса WSGI

Я пытаюсь вызвать перезагрузку моего WSGI-процесса, когда какой-либо файл изменяется в папке, где находится и все зависимые модули.

Я читал http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode, и я думал, что понял это, но эта неустойчивая стойкость заставляет меня сомневаться. Я работаю в режиме демона следующим образом:

DocumentRoot /usr/local/www/mysite.com/public_html WSGIScriptAlias /api /usr/local/www/mysite.com/server/server.py WSGIPassAuthorization On WSGIDaemonProcess mysite.com threads=15 python-path=/usr/local/www/mysite.com/server WSGIProcessGroup mysite.com 

server.py является основным файлом приложения WSGI, и все импортируемые им модули (которые могут измениться) находятся в той же папке, что и он.

Это то, что я придумал, и, похоже, он работает большую часть времени, но иногда я задерживаю модули (где я делаю изменения в исходном файле, и процесс перезапускается, но, похоже, загружает старый код). Какая проблема кеширования? Если процесс перезапускается, я думал, что импорт получит новый код? Я действительно хочу избежать использования reload (). Перезапуск Apache всегда блокирует его и подбирает изменения.

 #!/bin/bash while true; do inotifywait . -e modify,create --exclude server.py -q if (($? == 0)); then touch server.py else exit 0 fi done 

Правильно ли я думаю, что это (или что-то в этом роде) должно работать, или я лаяю неправильное дерево?

Корневой файл WSGI (server.py) довольно мал:

 print "Server restart" import sys, types, os, web import api import user # /api/user import list # /api/list @api.path('/info') class info(api.Handler): @api.params({ 'params': {'echo': unicode } }) def Post(self, data): return api.JSON({'info': 'foo', 'echo': data['echo']}) @api.path('/(.*)') class notfound(api.Handler): def Get(self): api.error('404 page not found') app = web.application(api.urls(), globals()) if __name__ == '__main__': app.run() else: application = app.wsgifunc() 

Python - лучший язык программирования в мире.