Каталог решений - Повышение производительности веб-сервисов. Переиспользование сеансов

Повышение производительности веб-сервисов. Переиспользование сеансов

Повышение производительности веб-сервисов. Переиспользование сеансов

В наличии

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

Категория:

Описание

Создано на основе практической реализации из публикации 

Повышение производительности веб-сервисов

Задача: Повысить производительность вызовов http-сервисов

Платформа: 8.3.18.1289

При использовании http-сервисов от 1С значительную часть времени занимает установка параметров сеанса. 

И если время сам метод выполняется менее чем за секунду. то установка параметров сеанса может занимать от полусекунды и выше.

Столкнувшись с необходимостью сократить время вызовов — решил применить переиспользование сеансов из вышеупомянутой статьи. В статье описана работа с Web-сервисами, а у меня Http-сервисы. И хотя по логике — там всё должно быть аналогично — тем не менее столкнулся с некоторыми трудностями. И поскольку аналогичного решения не нашел — делюсь своим опытом.

Запуск и использование сеанса — прошли без проблем.

Проблемы были с завершением сеанса. Но как выяснилось там тоже было всё просто.

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

 

1. Настройка повторного использования сеансов

1.1 Файл default.vrd

 

 

1.2 Настройка http-сервиса

 

 

2. Первый запуск — начало сессии

2.1 Вызов метода:

POST https://ПутьКПубликации/hs/client-api/v2/ИмяМетода HTTP/1.1

2.2 Заголовки:

User-Agent: Fiddler
Host: ПутьКПубликации
Authorization: Basic …
Content-Type= application/json: 
Content-Length: 0
IBSession: start

 

2.3 Из заголовка ответа — берем ibsession

Set-Cookie: ibsession=92d60db6-777c-4e3f-89b0-ff3ae8a61aa8

 

3. Повторное использование сессии

3.1 Вызов метода:

POST https://ПутьКПубликации/hs/client-api/v2/ИмяМетода HTTP/1.1

3.2 Заголовки — добавляем куки — из п 2.2:

User-Agent: Fiddler
Host: ПутьКПубликации
Authorization: Basic …
Content-Type= application/json: 
Content-Length: 0
Cookie: ibsession=92d60db6-777c-4e3f-89b0-ff3ae8a61aa8

 

3. Завершение сессии

3.1 Вызов метода:

POST https://ПутьКПубликации/hs/client-api/v2/ИмяМетода HTTP/1.1

3.2 Заголовки — добавляем куки и флаг завершения сессии:

User-Agent: Fiddler
Host: ПутьКПубликации
Authorization: Basic …
Content-Type= application/json: 
Content-Length: 0
Cookie: ibsession=92d60db6-777c-4e3f-89b0-ff3ae8a61aa8
IBSession: finish

"IBSession" — регистр в наименовании важен, если написать всё в нижнем регистре — работать не будет, сессия не завершиться.

 

Итоги по времени исполнения

Первый запуск (старт сессии)

    Overall Elapsed:    0:00:01.239

Повторный запуск

    Overall Elapsed:    0:00:00.306

Завершение сессии

    Overall Elapsed:    0:00:00.336

 

Время выполнения метода по замерам 1С: 0.022 сек

Судя по замерам — скорость выросла значительно.

has been added to your cart:
Оформление заказа