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и проч.).
За более подробным описанием и примерами конфигурирования обратитесь к документации (англ.).
Смотрите также: