@anton11122211

Как оптимизировать работу PHP интеграции?

Можете подсказать, как можно оптимизировать работу интеграции.

Суть работы:
1) Делаем запрос с списку объектов
2) вложенным циклом получаем детальную информацию по объектам
3) вложенным циклом модернизируем объект, если он подходит под условия
и пр.

Т.е. получается множество вложенных циклов, что замедляет работу. Скажите, как тут правильнее поступить\поступают.

Используется апи двух сервисов, php/guzzle, без фреймворков
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@rPman
Со своим сервисом - сделать batch запросы, позволяющие одним запросом выполнять несколько операций, например запрашивать/модифицировать информацию сразу по нескольким объектам. Но еще лучше, реализовать требуемую логику изменения объектов прямо на сервере, грубый пример - нужно сдвинуть координаты объектов на величину [dx,dy,dz], вместо того чтобы все с сервиса выгружать, менять координаты и загружать обратно, нужно сделать команду, которая на вход получит этот вектор и все сделает на сервере (это самый быстрый вариант)

С чужими сервисами, либо искать api для batch операций, либо переделать код на параллельные запросы, надеясь что этот сервис оптимизирован на такую работу (не факт, и даже если есть, количество параллельных запросов могут быть ограничены). Если ни то ни другое не доступно, размести свой сервис территориально максимально близко к чужому сервису (так как очень часто задержки сетевых запросов вносят очень большую задержку), само собой сначала удостовериться что причина именно в этом а не тормозах сервиса
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы