42  /  48

Вопросы производительности

Просмотров: 20119
Дата последнего изменения: 23.10.2023
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5

  Рекомендации

Приложения и интеграции работают с данными Битрикс24, и зачастую этих данных может оказаться очень много - если вы разрабатываете какую-то систему отчетности и аналитики, если вам нужно перенести в Битрикс24 или из Битрикс24 большой объем данных (нужно учитывать, что многие ваши потенциальные клиенты, использующие, в частности, CRM работают с десятками и сотнями тысяч клиентов) - вопрос устойчивой работы обмена данными встает очень остро. 

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

Для избежания блокировки приложения разработчикам рекомендуется:

  • Контролировать и регулировать частоту выполнения запросов;
  • Производить превалидацию запросов и не допускать запросов с априори некорректными данными;
  • Контролировать и обрабатывать ошибки взаимодействия с API и не отсылать повторно некорректно сформированные запросы;
  • Использовать механизм пакетного выполнения запросов batch для снижения количества запросов;
  • Кешировать данные и не совершать повторных запросов, результат которых не может измениться за сессию работы пользователя с приложением;
  • Отключать постраничную выборку с подсчетом количества элементов в списочных методах;
  • Использовать фильтрацию с точным сравнением.

Если решение создает аномальную нагрузку на портале и уходит в блокировку, то при очередном запросе отдается 503 ошибка или ошибка такого вида: 'error' => 'OVERLOAD_LIMIT', 'error_description' => 'REST API is blocked due to overload.'

Для решения проблемы с постраничными выборками с подсчетом количества в выборках данных разделов CRM, USERS и т.д. используется параметр start -1. Подробное решение проблемы описано в документации.

Для решения подобной проблемы в задачах параметр start -1 не работает, вместо него используется $params['COUNT_TOTAL']='N'

При частых выборках одних и тех же данных рекомендуем партнеру кешировать данные на своей стороне.

Внимание! Существует лимит на число запросов. Разрешается два запроса в секунду. Если лимит превышается, то ограничение начинает срабатывать после 50 запросов Ограничения числа запросов изменилось. Было 100, как показано в вебинаре от 22.05.2017. В настоящее время 50. .
Для тарифа "Энтерпрайз" число запросов - 5 в секунду. Лимит на число запросов - 250.

  Вебинары по теме

  • Разработка REST-приложений. Полезное. Сергей Востриков, Владислав Бажанов, «1С-Битрикс».

    Вебинар от 21 мая 2021 г.

  • Приложения24. Вопросы производительности решений на REST для «Битрикс24».

    Вебинар от 22 мая 2017 г.

    Архив с примером кода



1
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии