Cresis
@Cresis

Как оптимизировать foreach или запустить параллельное выполнение?

Добрый день. У меня есть база из 30к продуктов.
Мне нужно каждый продукт запросить из микросервиса и записать результат в массив.
Я пробовал для начала делать 100 итераций, прогоняю массив с продуктами через foreach.
В среднем одна иттерация занимает 7 сек а 100 иттераций 4,2 сек. На 30к продуктов выйдет больше 30 часов. И это еще без функционала, который что-то должен делать с этими массивами, там для одного продукта время увеличивается до 7 сек.

Поделитесь опытом разработки подобных задач. Как можно оптимизировать процесс? Может есть какие-то проверенные, подходящие библиотеки для асинхронности, параллельности?
  • Вопрос задан
  • 181 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Blindovich
Если вы используете обычный php без расширений open swoole, rode runner etc.. то для вас есть только 1 способ добиться асинхронного выполнения кода. Это очереди, https://www.rabbitmq.com, https://kafka.apache.org
Если вы используете Laravel то просто установите Laravel Horizon
Ответ написан
@masterfreelance
программист со стажем
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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