sha256
@sha256

Как обратится к глобальной переменной из службы в python?

Друзья, всем привет!
Пишу свой первый веб-сервис на питоне, с помощью связки spyne -> mod_wsgi -> apache поднял часть которая отвечает за общение с приложением. Само приложение пришлось вынести из mod_wsgi, т.к. каждый запрос прогружает всё заново и дико тормозит ответы. Как вынести приложение в оперативную память, чтобы один раз запустить и через mod_wsgi только обращаться к нему?

Сейчас стартую скрипт в интерактивном режиме:
def startup():
      global model
      from sklearn.externals import joblib
      model= joblib.load('model')
      print('Model_loaded')


Но из mod_wsgi не могу достучаться до переменной:
global model

Буду признателен за ссылки на примеры!
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
sha256
@sha256 Автор вопроса
Проблема лечится внутренней демонизацией mod_wsgi, вот пример работающего конфига Apache:
<VirtualHost *:80>

    ServerName get
    
    WSGIDaemonProcess pybsk processes=1 threads=5
    WSGIScriptAlias /Get /var/www/python/pymain.py
    
    WSGICallableObject 'application'
    LogLevel info
    DocumentRoot /var/www/python

    <Directory /var/www/python>
        WSGIProcessGroup get
        WSGIApplicationGroup %{GLOBAL}
        <IfVersion < 2.4>
            Order allow,deny
            Allow from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
    </Directory>
    <IfDefine MOD_WSGI_LOAD_PYTHON_DYLIB>
        LoadFile ''
    </IfDefine>
    
    WSGIMapHEADToGET Auto

</VirtualHost>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Hivemaster
@Hivemaster
Админ, который хочет программировать
Глобальные переменные - зло.
Ответ написан
@Biba_neBoba
Если ошибка в том, что не найдена переменная model, то можно попробовать объявить её до функции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
QIWI Москва
от 180 000 до 210 000 руб.
Joom Москва
от 270 000 руб.
AI Factory Санкт-Петербург
от 125 000 до 250 000 руб.
17 янв. 2019, в 18:21
1000 руб./за проект
17 янв. 2019, в 18:20
500 руб./за проект
17 янв. 2019, в 18:06
5000 руб./за проект