• Имеется ссылка к xml-файлу. Доступ к нему предоставляется для IP, на котором расположен сайт (для других IP доступ закрыт).
    Какой способ парсинга наиболее производительный для WordPress? Я так понимаю, что JS использовать нельзя, т.к. доступ по IP и с помощью JS никак нельзя будет получить содержимое файла?
    xml-файл будет считываться при любом обновлении страницы сайта.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • причем тут wordpress?
    парсинг надо делать через php аля https://www.php.net/manual/ru/simplexml.examples-basic.php
    а wordpress нужен, чтобы закэшировать результат, тут вам лучше использовать транзитный кэш. считывать заново при любом обновлении страницы абсолютно не вариант — ваш сайт будет тормозить незнамо как. так что транзитный кэш с результатами на 8-48 часов, вы уже там сами решите, насколько часто информация в xml обновляется и сколько она будет актуальной.

    Данные в том файле обновляются постоянно (лайв-результаты спортивных событий), поэтому транзитный кэш не совсем подходит. Как тогда поступить?

    Модератор Yuri

    (@yube)

    поэтому транзитный кэш не совсем подходит. Как тогда поступить?

    Не использовать транизитный кэш.

    Модератор Yuri

    (@yube)

    Целесообразность кэширования можно оценить по количеству запросов к сайту за то время, в которое информация остается неизменной и актуальной.

    Не использовать транизитный кэш.

    Тогда на сайт будет колоссальная нагрузка. В JS нет способа как-то эмулировать IP-адрес, чтобы получить доступ к файлу?

    Модератор Yuri

    (@yube)

    В JS нет способа как-то эмулировать IP-адрес

    Нет.

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

    для сайтов, которые продают такой доступ очень странно не иметь js api.
    xml файл с доступом по ip — это очень странно.

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

    xml файл с доступом по ip — это очень странно

    Полностью согласен.

    быстро соединиться с чужим сервером, скачать xml, обработать его — это временные задержки до секунды в лучшем случае.

    Да, задержки бывают и по 2-3 секунды.

    Спасибо вам за разъяснения. Для себя делаю вывод, что лучше найти сервис с доступом js api и не ломать голову.
    Тему закрываю.

    Модератор Yui

    (@fierevere)

    永子

    вам уже отчасти сказали про это.
    Лучше всего по системному cron скачивать файл, парсить его вне WordPress, любыми средствами, лучше всего, если использовать программу на C/C++, нежели языках высокого уровня, но сойдет в принципе любой парсер, с которым вы сможете совладать, Perl, Python…

    Промежуточный результат можно сохранять для WP например в отдельной таблице MySQL, а лучше в Redis (или ином Key-Value storage), в зависимости от того, какое представление результатов вы там парсите, и как вам нужно делать выборку и нужно ли.

    В любом случае вам потребуется проделать много работы или заказать её,
    т.к. готового для WP наверняка «под ключ» для вашей задачи ничего нет.

    а без посторонних программ нельзя?
    у mysql вроде бы есть LOAD XML, встроенный крон — Event Scheduler.

    конечно, для live-результатов задержка и 5 сек много, но все же лучше чем ничего.

    я просто не в курсе работы LOAD XML в mysql, мне интересно — это по ресурсоемкости вообще имеет право на жизнь или нет?

    Модератор Yui

    (@fierevere)

    永子

    https://dev.mysql.com/doc/refman/5.5/en/load-xml.html

    парсер на C/C++, libxml или expat, поэтому с производительностью у него быть никаких проблем не должно, работает в отдельном потоке, блокирует таблицу до завершения процесса
    Это хороший вариант.

    Модератор Yuri

    (@yube)

    мне интересно — это по ресурсоемкости вообще имеет право на жизнь или нет?

    mysql load xml на порядок веселее, чем php simplexml и построчное внесение в БД. Проверено на гигабайтных файлах. simplexml вообще тормоз и обжора 🙂

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Парсинг XML» закрыта для новых ответов.