Gunicorn은 꽤 멋진 구성을 가지고 있습니다. 그들의 근원의 git 복제품의 주위에 찾아보고 "post_fork"가 생각 나는 example_config.py를 찾아 냈다. 조금 더 소스를 파고 들자 나는이 솔루션을 생각해 냈습니다.
def post_fork(server, worker):
server.log.info("%s: Worker spawned" % worker.pid)
from gunicorn.workers.sync import SyncWorker
class SyncWorkerPreload(SyncWorker):
def run(self):
pass
def init_process(self):
super(SyncWorkerPreload, self).init_process()
from django.db.models.loading import get_apps
get_apps()
server.log.info('%s: App loaded' % self.pid)
super(SyncWorkerPreload, self).run()
worker.__class__ = SyncWorkerPreload
희망이 힌트를 찾을 수 google'ing 사람을 도움 : gunicorn_conf.py이 기능이
% gunicorn_django -c path/to/gunicorn_conf.py path/to/settings.py
.
거니 콧 (Gunicorn)이 이것을 허용 할만큼 충분히 유연 했다니 정말 대단합니다!
UPDATE : 업데이트 된 코드는 단순히 설정에서 모듈을 로딩하는 것은 때로는 희망 ... 때문에 내가 ...이 새로운 코드 원숭이 패치가 "안전"시간에 모듈을로드 gunicorn 가정하는 방식 장고로드 모듈로 나누기
UPDATE : gunicorn 0.12.1 수정이 문제