uwsgiconf
Конфигурирование uWSGI из кода на Python.
Репозиторий: https://github.com/idlesign/uwsgiconf
Автор:
Игорь Стариков
Если вы думаете, что знаете
Там так много подсистем и опций (более 800), что их трудно уместить в голове.
Некоторые особенности:
Создайте
Чтобы создать файл конфигурации
Но можно пойти дальше и при помощи команды
Для того чтобы иметь доступ к инструментам
Пример использования некоторых инструментов:
Во время исполнения
Если включить интеграцию с
За более подробным описанием и примерами конфигурирования обратитесь к документации (англ.).
Смотрите также:
uWSGI
, то вероятно ошибаетесь: постоянно выясняется, что это нечто большее, чем вы думали.Там так много подсистем и опций (более 800), что их трудно уместить в голове.
uwsgiconf
позволяет конфигурировать uWSGI
из приложений на Python.Некоторые особенности:
- Опции разных подсистем структурированы при помощи классов и методов;
- Строки документации и единообразное именование сущностей упрощает навигацию;
- В комплекте есть предустановки, позволяющие не писать лишнего кода;
- Поощряет повторное использование конфигураций;
- Имеет интерфейс командной строки для удобства конфигурирования и запуска;
- Включает простую в использовании, документированную заглушку модуля
uwsgi
; - Предлагает модуль для сообщения с
uWSGI
во время исполнения, похожий наuwsgidecorators
, но с дополнительными инструментами; - Предлагает пакет для интеграции с каркасом
Django
; - Умеет генерировать файлы конфигурации для
Systemd
иUpstart
; - Поддерживает
pyuwsgi
.
На заметку
Чтобы повысить продуктивность работы с
uwsgiconf
используйте среду разработки с поддержкой автодополнения и строк документации.Статическое конфигурирование
Создайте
uwsgicfg.py
, в котором мы сконфигурируем uWSGI
для запуска нашего веб-приложения, используя предустановку PythonSection
. from uwsgiconf.config import configure_uwsgi
from uwsgiconf.presets.nice import PythonSection
def get_configurations():
"""Создаёт конфигурацию для запуска приложения из wsgi.py на 127.0.0.1:8000."""
return PythonSection.bootstrap(
'http://127.0.0.1:8000',
wsgi_module='/home/idle/myapp/wsgi.py')
configure_uwsgi(get_configurations) # Указываем функцию конфигурирования.
Чтобы создать файл конфигурации
uWSGI
используем команду compile
: $ uwsgiconf compile > myconf.ini
$ uwsgi myconf.ini
Но можно пойти дальше и при помощи команды
run
автоматически запускать uWSGI
с конфигурацией из созданного uwsgicfg.py
: $ uwsgiconf run
На заметку
Чтобы использовать интерфейс командной строки
uwsgiconf
, нужно установить пакет с расширением cli
: pip install uwsgiconf[cli]
.Динамическое конфигурирование
Для того чтобы иметь доступ к инструментам
uWSGI
во время исполнения приложения, uwsgiconf
поставляется с инструментами, похожими на те, что входят в uwsgidecorators
. Эти абстракции используют заглушку модуля uwsgi
, когда реальный модуль недоступен (например, код запущен не под uWSGI
).Пример использования некоторых инструментов:
from uwsgiconf.runtime.locking import lock
from uwsgiconf.runtime.scheduling import register_timer_rb
@register_timer_rb(10, repeat=2)
def repeat_twice():
"""Выполнится дважды с интервалом 10 секунд."""
with lock():
# Используем блокировку, чтобы не было гонок.
do_something()
Во время исполнения
uwsgiconf
предоставляет инструменты для доступа к следующим подсистемам uWSGI
:- Оповещения (alarms)
- Кеш
- Блокировки
- Журналирование
- Мониторинг
- Мулы и фермы
- Удалённый вызов процедур
- Планировщик
- Сигналы
- Веб-сокеты
- и проч.
Интеграция с Django
Если включить интеграцию с
Django
, то:- в административном интерфейсе появится раздел со статистикой
uWSGI
; - фоновые задания будут автоматически подгружены из модулей
tasks.py
приложений; - станут доступны команды управления (
uwsgi_run
,uwsgi_reload
и проч.).
За более подробным описанием и примерами конфигурирования обратитесь к документации (англ.).
Смотрите также: