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

20.10.21

База данных - HighLoad оптимизация

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

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

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

Задача: Повысить производительность вызовов 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 сек

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

веб-сервис переиспользование сеансов завершение reuseSessions IBSession finish 8.3.18

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16094    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18187    10    15    

16

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85417    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13002    33    8    

12

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16631    43    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1297 20.10.21 18:12 Сейчас в теме
По сути краткое изложение статьи 2016 года https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/

Примеры можно организовать в виде postman коллекции, удобно на своем сервере прогонять автоматом.

Интересно "01.239 - 00.306" - это на пустой базе или доп. код типовой по инициализации? Интересно на сколько критично его выпилить тем самым уменьшив время инициализации.

"Эта стратегия позволяет вам реализовать сценарии, в которых используется состояние сеанса, сохранённое на сервере." + "завершение сеанса может происходить не только по вашей «команде», но и автоматически", под какой кейс это применимо непонятно, сам пишу либо REST либо RPC подобное.
2. sorter1 50 20.10.21 18:46 Сейчас в теме
(1)
Сильно переработанная УТ 10.3
Установка параметров сеанса - от 0.5 до 1 сек
При входе в клиент - как-то не особо заметно, зашел и зашел.
А когда вызывается десяток методов с сайта - заметно торможение. при каждом вызове - установка параметров сеанса.

Создано - как раз на основе статьи . но т.к. подробностей применительно к существующим требованиям не было пришлось экспериментировать.
3. unichkin 1565 14.03.23 11:24 Сейчас в теме
С http-сервисами все действительно просто. А как быть с web-сервисами? Попал на зависающий сеанс, как его прекратить по данным статьи в зазеркалье - непонятно. У объекта WSПрокси нет заголовков, где это все указывается.
4. simuljakr 203 08.11.23 16:40 Сейчас в теме
Подскажите пожалуйста насчет заголовков: - в моем случае они не используются.
Если брать из вашего примера - достаточно ли в заголовки вставить при запросе только IBSession ?
5. simuljakr 203 08.11.23 17:03 Сейчас в теме
И что класть в переменную IBSession на стороне базы, которая формирует ответ ?
Я так понимаю - это некий идентификатор Http-сессии ?
6. simuljakr 203 08.11.23 17:50 Сейчас в теме
(0) ,
(1)
Вот в этой статье
https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/


пишут, что параметр должен установиться в заголовок платформой автоматически:
https://disk.yandex.ru/i/jzk4OFn08J9bPg

а у меня устанавливается вот так:
https://disk.yandex.ru/i/h_qIOiYfZDCzSw

Почему платформа не возвращает IBSession ?
Оставьте свое сообщение