Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Массовое обновление элементов инфоблока

00 голосов
2
Доброго времени суток.

Есть самописный парсер контента жестко определенных сайтов. Парсит раз единицу времени. Результат заливает в информационный блок. Сейчас это делается через CIBlockElement:Add,Update,Delete.

Элементов для операций бывает достаточно много - десяток тысяч (понятно, что грузится не все махом, а итерационно), но даже в этом случае за такт в 30 сек обновляется не более 20-40 элементов (включая загрузку картинок где необходимо). Чтобы обновить весь каталог (если вдруг такое произошло) требуется порядка 12 часов (при старте парсера раз в 5 минут).

Облазил API функции массового обновления (пакетом) не нашел, в цикле мне кажется очень по напряжно для сервера. Если пару дней обновлять весь каталог, то apache падает, памяти php не хватает и вешает сайт (да, отладить можно/нужно, но не суть этой темы, раньше было хуже - падало раз в час smile:) ). Существует ли возможность массового/пакетного обновления?

PS: Понятно, что можно делать запросы напрямую в базу, но есть необходимость сохранить API и нет желания копаться с разделением элемента и его свойств, отслеживанием взаимосвязей при обновлении/удалении и т.д.

PS2: подскажите какой идеальный вариант работы с неограниченной загрузкой данных в блок (CMLImport, XMLFile...)?
спросил 30 Апр, 14 от Djicso (100 баллов)

2 Ответы

00 голосов
Цитата
kollipso@gmail.com пишет:
за такт в 30 сек обновляется не более 20-40 элементов (включая загрузку картинок где необходимо)

Чот как-то медленно. Можете показать тот кусок кода, который относится к работе с базой битрикса?
ответил 22 Дек, 14 от Ly (4,580 баллов)
00 голосов
ответил 11 Апр, 15 от EDKA (980 баллов)

Похожие вопросы

0 голосов
2 ответов
0 голосов
3 ответов
0 голосов
2 ответов
спросил 21 Март, 14 от 666KREVED (760 баллов)
0 голосов
3 ответов
спросил 06 Март, 14 от Texnik (1,860 баллов)