Разработал парсер, который парсит обменники от 50 до 150 сайтов. На каждом сайта XML с данными ( валюты, курсы, прибыль, резерв, и т.д. ).
Проблема в том, что при запуске, из-за него подгружаются долго и другие страницы. Вот часть кода, где парсю, делай перебор и добавляю в базу данных.
$wp_emetal = "";
$wp_emetal_calc = "";
foreach($changers as $changer){
$file = file_get_contents($changer["changer_url"]);
if($file != ""){
$xml_c = new SimpleXMLElement($file);
foreach($xml_c as $item){
if(isset($valuts["$item->from"]) && isset($valuts["$item->to"])){
$koef = 0;
if($valuts["$item->from"]['koef_type'] == 0){
$koef = round(floatval($item->in)/floatval($item->out),8);
}
else $koef = round(floatval($item->out)/floatval($item->in),8);
$wp_emetal .= "('".$valuts["$item->from"]['id']."','".$valuts["$item->to"]['id']."','".$koef."','".floatval($item->in)."','".floatval($item->out)."','". floatval($item->amount)."','".$changer["changer_id"]."'),";
$wp_emetal_calc .= "('".$valuts["$item->from"]['id']."','".$valuts["$item->to"]['id']."','".$koef."','".floatval($item->in)."','".floatval($item->out)."','". floatval($item->amount)."','".$changer["changer_id"]."','".floatval($item->out)."','".floatval($item->in)."'),";
}
}
}
}
$wp_emetal = substr($wp_emetal, 0, -1);
$wp_emetal_calc = substr($wp_emetal_calc, 0, -1);
$wpdb->query("INSERT INTO `wp_emetal` (`emetalx`, `emetaly`, `koef`, `start`, `startx`, `rezerv`, `changer`) VALUES ".$wp_emetal."");
$wpdb->query("INSERT INTO `wp_emetal_calc` (`emetalx`, `emetaly`, `koef`, `start`, `startx`, `rezerv`, `changer`, `get`, `give`) VALUES ".$wp_emetal_calc."");
Может кто то подскажет, как сделать грамотнее может быть, что бы не подвисало? Пока есть только ещё одна идея, это парсить на поддомене, и перекидывать жсоном на свой сайт, где уже принимать.
P.S Сайт стоит на выделенном сервере, так что писать "сменить хостинг и т.п.", не нужно
Буду благодарен за хорошие идеи.
Эм... Парсеры делают отдельными скриптами и вешают на cron. Только вам придется подключать базу/ядро отдельно в таком парсере.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Какие методы SOLID были нарушены в этом коде или что можно изменить (упростить)Хотелось бы услышать ваши замечания и предложения (если у вас...
Имеется docker контейнер php:71-fpm на котором крутится lumen
Сайт написан на php 56 (Kohana), как обновить код самого сайта до php 7