Обращения к веб-серверу
<< Click to Display Table of Contents >> Разработка > Рекомендации по разработке для масштабируемых систем Обращения к веб-серверу |
Чтобы пользователь мог эффективно работать с системой, действия в ней должны выполняться мгновенно. Каждый запрос к веб-серверу влечет за собой ожидание времени отклика и дополнительно нагружает сервер. Большое количество запросов влияет на быстродействие системы, поэтому их нужно минимизировать.
Чтобы проверить количество запросов от веб-клиента к веб-серверу:
1.Войдите в веб-клиент. Выполните в нем доработанную или созданную в прикладном коде операцию. Например, заполните карточку разработанного типа документа.
2.В лог-файле веб-сервера проанализируйте количество записей, у которых в значении атрибута lg записано WebApiCallSpan. При поиске ориентируйтесь на примерное время выполнения операции.
Примечание. Измерение количества запросов должно происходить на базе с достаточным количеством данных.
При разработке учитывайте рекомендуемое число запросов для операций:
•выделение записи в списке – 0 запросов;
•событие Обновление формы – 0 запросов;
•событие Показ формы – 0 запросов;
•событие Изменение значения контрола для свойства – 0 запросов;
•событие Возможность выполнения для действия – 0 запросов;
•создание из списка – 1 запрос;
•открытие карточки – 1 запрос;
•сохранение карточки или вызов действий – не более 5 запросов.
0 запросов означает, что в обработчиках событий не рекомендуется вызывать серверные функции (с атрибутом Remote) и использовать логику, которая будет долго обрабатываться. Перечисленные обработчики выполняются часто. Поэтому, если в них есть серверные функции, то на веб-сервер отправляется большое количество запросов, что, в свою очередь, влияет на быстродействие.
Если функции с атрибутом Remote используются в коде обработчиков событий Возможность выполнения (CanExecute) и Обновление формы (Refresh), то в среде разработки на этапе сборки решения появляется предупреждение. Рекомендуется удалить функцию. Если решается ее оставить, то при работе пользователя с карточкой сущности в веб-клиенте результат выполнения кэшируется. Для снижения нагрузки на Directum RX функция повторно не выполняется, пока открыта карточка. Система получает результат из кэша. После обновления или закрытия карточки результат в кэше сбрасывается.
Если клиентское событие с вызовом Remote-функции обрабатывается на сервере больше минуты, информация об этом по умолчанию записывается в лог-файлы веб-сервера. С помощью этого разработчик может найти обработчики, которые замедляют работу сервера из-за частого вызова серверных функций. При этом, если выполнение запроса на веб-сервер превышает тайм-аут, то запрос автоматически прерывается через 5 минут. Также частоту вызова Remote-функций в клиентских событиях и время их обработки можно отслеживать с помощью технического решения «Мониторинг системы Directum RX».
Чтобы ускорить время выполнения операций:
•объединяйте небольшие серверные вычисления
•используйте «жадную» загрузку свойств
•проверяйте блокировки сущности в действиях
•кэшируйте действия с помощью параметра Params
•добавляйте проверку фильтров в списках и папках
© Компания Directum, 2024 |