Хостинг
VDS
Аренда серверов
Домены
Почта
SSL
Хранилище
Сайты
Обзоры
Регламенты
AI Studio
Kubernetes
Архив
Как работает Python AsyncIO

Хостинг - как работает Python AsyncIO

В хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.

1. Запуск Python
2. Перезапуск сервиса после изменения кода сайта
3. Работа с ошибками приложения

AsyncIO - модуль для организации асинхронного программирования. Появился в Python 3.4.

На базе AsyncIO можно организовать поддержку WebSocket, либо обрабатывать большое количество соединений.

В отличие от обычных сайтов на Python, сайт на Python AsyncIO сам должен быть web-сервером для проксирования.

Таким образом ваше приложение будет запускаться не через wsgi, а как отдельный сервис.

Вашему сайту потребуется прикрепиться на IP и порт, указанные в переменных окружения APP_IP и APP_PORT. Пример.

1. Запуск Python

При создании сайта в качестве конфигурации выберите “Python AsyncIO” + нужный тип базы данных:

Загрузить файлы сайта можно подключившись по SFTP.

Файлы вашего приложения можно расположить в каталоге sitename.ru/app, а статические файлы (.css, .jpg, .png и другие) - в каталоге sitename.ru/www.

Чтобы установить зависимости потребуется подключиться по SSH.

Далее установите зависимости:

pip install -r requirements.txt

или

python setup.py install

Для запуска сервера используйте переменные окружения APP_IP и APP_PORT

Пример для библиотеки aiohttp:

#!/usr/bin/env python3

from aiohttp import web

app = web.Application()
... # инициализация приложения AioHTTP

# Запуск сервера
web.run_app(app, host=os.environ['APP_IP'], port=os.environ['APP_PORT'])

После того как файлы будут загружены, откройте настройки сайта в личном кабинете и укажите файл для запуска вашего приложения. Например app/hello.py.

2. Перезапуск сервиса после изменения кода сайта

После изменения кода сайта потребуется перезапуск сервиса.

Для перезапуска приложения:

  • откройте настройки сайта в личном кабинете

  • далее вкладку Python AsyncIO

  • нажмите “Перезапустить Python AsyncIO”

Для перезапуска приложения в терминальном режиме в папке с сайтом выполните команду

touch reload

Например

c3087@h2:~/sitename.ru$ touch reload

3. Работа с ошибками приложения

Если при обращении к сайту вы видите ошибку 502 Bad Gateway или аналогичную, то в первую очередь стоит обратиться к логам ошибок.

Возникавшие ошибки за нужную дату можно найти в файлах sitename.ru/log/app-runlog/current.

Наблюдение в реальном времени за лог-файлом:

tail -f ~/sitename.ru/log/app-runlog/current



Больше информации об хостинге.

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
Заказать

Нам доверяют тысячи компаний и разработчиков

22 года
Предоставляем услуги профессионального хостинга
35 000+
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime наших серверов хостинга
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
ВК49865