Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Сеть > Многопоточность в curl |
Автор: Randomm 31.8.2007, 18:14 | ||
Проблема. Есть класс для эмуляции браузера, написанный с использованием курла. То есть там есть например функции get, post и т.п. Есть ряд функций, каждая из которых работает с определённым сайтом, используя эти самые get и post, и между их использованием как-то обрабатывает полученную информацию. Задача. Запустить эти функции в несколько потоков. Сразу напрашивается использование curl_multi, однако тот факт, что в каждой из функций get и post использовано по несколько раз, всё портит. То есть за время работы функции делает curl_init, curl_exec и curl_close. Нашёл на пхп.нет пример работы с мультикурлом: http://ru2.php.net/manual/en/function.curl-multi-exec.php
но я так понимаю, что для моего случая он не подходит, ибо нельзя в поток после curl_close($conn[$i]); добавлять новый curl_init(); Собственно вопрос, как наименьшими жертвами добиться нужного результата? можно ли как-то эти функции запустить в несколько потоков? |
Автор: Randomm 7.9.2007, 18:41 |
Прям совсем никто не знает? |
Автор: WolfON 7.9.2007, 22:45 |
можно запустить несколько экземпляров одного скрипта |
Автор: Golda 9.9.2007, 07:47 |
А скрипт будет выбирать, например, из базы данных, первый адрес, помеченный как еще не обработанный. |
Автор: dracs 12.9.2007, 00:16 |
Только если запускаешь несколько экземпляров 1-го скрипта не забывай про куки если ложишь их в файл для дальнейшего использования - каждый скрипт должен хратить в разных куки-файлах. Тоже грабли были. |
Автор: Валерия 9.12.2007, 03:20 |
Ну вообще идеальный вариант, сделать демона, который запустит несколько копий скрипта, и который будет раздавать через сокеты "задания", а они, когда выполняют, опять садятся на прослушку ![]() Я когдато давно делала такое... Потом забила, нормальные потоки не сделаешь в php ) |
Автор: sTa1kEr 11.1.2008, 19:11 |
Еще вариант - не использовать курл, а реализовать все самому на сокетах. Пример http://forum.vingrad.ru/topic-159049.html |