Всем доброго времени суток!
Столкнулся с проблемой зависания выполнения скрипта.
Задача - пакетное вычисление и обновление цены у большого количества товаров.
Что я делаю (
сразу скажу, что знаю, что запрос в цикле - это очень плохо):
- Выполняю выборку нужных мне товаров с помощью CIBlockElement::GetList и сохраняю все это в массив товаров
- Обхожу массив товаров с помощью foreach, где при каждой итерации вычисляю нужную мне цену и записываю ее для товара с помощью CCatalogProduct::Update
Все бы хорошо, для небольшого количества товаров все работает, но в данном случае товаров очень много (около 50 000) и логично, что скрипт просто зависает из-за большого времени выполнения и потребления ресурсов.
Но как эту задачу выполнить по другому - что то никак не придумаю.
Кто нибудь сталкивался с подобной задачей?
Буду очень признателен за помощь!