Как настроить переменные конфигурации mod_python? - PullRequest
0 голосов
/ 04 августа 2009

Я использую сервер Python с mod_python, и у меня возникли некоторые проблемы с переменными конфигурации. Это на самом деле два вопроса в одном, потому что я думаю, что они тесно связаны:

  1. Мне нужен способ настройки переменных, которые будут доступны в Python во время работы. В настоящее время у меня просто есть модуль, который устанавливает несколько пар имя-значение, которые я импортирую в другие модули, но недавно я читал о PythonOption и интересовался, какие преимущества получит его использование вместо этого.

  2. Мне нужен способ хранения состояния на сервере. У меня есть доступ к API, который ограничен запуском X раз в день, и как только он достигнет этого предела, мне нужно вернуться к своему (меньшему) коду. Мне интересно, как я могу отслеживать, сколько раз я выполнял запрос в день.

Я думал об использовании файла или базы данных, но боюсь, что я замедлю запросы, если все попытаются получить доступ к одному и тому же файлу или строке сразу. Есть ли лучший способ установить это в mod_python?

Ответы [ 2 ]

1 голос
/ 04 августа 2009
  1. Использование PythonOption позволяет настраивать элементы, которые могут потребоваться для переключения с сервера на сервер. Я бы не стал использовать это слишком часто, потому что возиться с директивами конфигурации Apache - это своего рода боль (плюс это требует перезагрузки сервера). Вы можете рассмотреть что-то вроде использования PythonOption для указания имени файла настроек, который содержит фактические переменные конфигурации. (Или вы можете просто посмотреть в стандартном месте для файла настроек, как это делают большинство фреймворков)

  2. Если вы действительно не хотите рассматривать файл или базу данных, попробуйте memcached. По сути, это очень простая база данных (получение, установка и очистка только по ключу), которая полностью хранится в оперативной памяти, поэтому она очень быстрая. Если все, что вам нужно сохранить, это переменная счетчика, вы можете просто вставить ее в модуль Python как глобальную переменную, если вы не беспокоитесь о том, что счетчик сбрасывается при перезагрузке модуля.

0 голосов
/ 04 августа 2009
  1. Мне нужен способ настройки переменных, которые будут доступны в Python во время работы.

    Делай то, что делает Джанго. Используйте простой импортируемый скрипт операторов присваивания Python.

  2. Мне нужен способ хранения состояния на сервере.

    Делай то, что делает Джанго. Используйте SQLite3.

Также прочитайте PEP 333 и структурируйте компоненты приложения для поддержки WSGI. Это должна быть сравнительно небольшая ревизия, чтобы иметь правильную структуру WSGI для существующего кода.

Когда вы переключаетесь с mod_python на mod_wsgi, вы можете найти множество компонентов, которые сделают эти вещи для вас и уменьшат объем написанного вами кода.

...