Интересует как запустить выполнения функции паралельно внутри другой функции. Если я захожу на ссылку site.com/action/?from=0&to500 то сайт запускает функцию которая запускает другую функцию. Сама функция парсит страницы. Так как страницы долго грузить то за одно выполнение скрипта получаеться парсить только 500 страниц. Но если я запущу данную ссылку с изменением from-to на другие параметры в 20 вкладках. То все вместе парсит быстро. То-есть скрипт запускаетсья паралелньо. Как можно симулировать в PHP такой же процесс внутри кода?
Вариантов несколько, самый правильный: погуглить в сторону асинхронного выполнения.
Второй вариант, посмотреть свой парсер, возможно его можно переделать.
Третий вариант, скорей костыльный, но вы можете получать ?from=0&to500
разбивать его на несколько частей, например если на 2, то: ?from=0&to250
и ?from=251&to500
и запросить эти пути без времени ожидания.
И запустить 2 курла (а лучше используя multi_curl), с параметрами без ожидания, типа такого:
$URL = 'http://site.com/action/?from=0&to250';
$CURL= curl_init();
curl_setopt($CURL, CURLOPT_URL, $URL);
curl_setopt($CURL, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($CURL, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($CURL, CURLOPT_TIMEOUT_MS, 100);
curl_setopt($CURL, CURLOPT_CONNECTTIMEOUT_MS, 100);
curl_exec($CURL);
curl_close($CURL);
и так-же для второй ссылки, если много и динамически, значит циклом запускаем (а еще лучше юзать multi_curl)
Простейший это использовать вызов с помощью большого количества запросов, грубо говоря на самого себя делать какое-то N раз запрос в котором парситься следующая часть страницы.
Можно посмотреть в сторону многопоточности в виде pThreads
Что позволит одним скриптом выполнять большее количество раз парсинг параллельно и именно по настоящему параллельно. pThreads
.
Ну а можно использовать асинхронное программирования которое на мой взгляд, лучшие решения, смотрите в строну PhpReact
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Попытаюсь изложить максимально понятнее, чем в заголовке) В общем подключил самый простой обработчик на сайт, но возникли некоторые трудностиКогда...
Массив $arrtxt сравнивается по значению с массивом $new по ключу который также содержит в себе массив с ключами и после рандомно выводится рядом...
Использую codeigniter 3И мне нужно сделать отправку с формы смс на почту @gmail
Есть числа со степенью в таком формате 2401E-5 Как их можно преобразовать в десятичные числа если степени будут постоянно меняться?