CherryPy, SQLAlchemy Core поток безопасности? - PullRequest
0 голосов
/ 28 октября 2011

в своем веб-приложении я решил использовать Cherrypy 3.2 в качестве http-фреймворка.

Я использую класс cherrypy.Application для создания WSGI-совместимого объекта appliaction, который обслуживается через Apache2 с mod_wsgi.

Кроме того, я использую только основные компоненты SQLalchemy 0.7.3 (не ORM). Есть несколько инструментов для cherrypy для правильной привязки сессии к запросу (например, SATools ). Но объект Session в SQLalchemy является частью ORM, а не ядром.

Итак, я начал думать о том, как сделать похожий инструмент, но без сессии.

Документация по SQLalchemy гласит:

Для многопроцессорного приложения, использующего системный вызов os.fork, или, например, многопроцессорный модуль Python, он обычно требуется, чтобы для каждого дочернего процесса использовался отдельный Engine.

Так как правильно создать один движок на одну вишневую нить? Принимая во внимание, что потоки созданы apache2 (вероятно).

Спасибо!

edit : возможно, важно, чтобы приложение wsgi запускалось в режиме демона с помощью apache2

1 Ответ

0 голосов
/ 29 октября 2011

В mod_wsgi я не думаю, что это проблема, если я понимаю вопрос, потому что приложение не загружается в память до разветвления в mod_wsgi.Вместо этого приложение отдельно загружается в каждый отдельный процесс, поэтому нет проблем с общими материалами из-за наследования через форк.

...