Как работает 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/app, а статические файлы (.css, .jpg, .png и другие) - в каталоге sitename/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. Перезапуск сервиса после изменения кода сайта

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

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

  • откройте настройки сайта в личном кабинете
  • далее вкладку AsyncIO
  • нажмите “Перезапустить приложение”

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

touch reload

Например

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

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

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

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

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

tail -f ~/имясайта/log/app-runlog/current



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

Хостинг
Хостинг
Хостинг
Создавайте неограниченное количество сайтов в изолированных контейнерах
С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
20 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865