


[DS] Прогрузка сайта на нескольких Хромиумах
#Внимание!
#Вопрос по PHP Devel Studio!
#Вопрос СЛОЖНЫЙ и требует хорошие знания DS,хромиумов, потоков.
#Вопрос длинный, но прошу читать всё во избежание повторений, недопониманий, предубеждений.
#К вопросу прикреплены скрины и видео запуска! (Там всё наглядно и понятно)
На форме имеются несколько хромиумов (браузеров) штук 5.
Я пытаюсь запустить их всех на один сайт (Agar.re)
Таким образом:
$n = '1';
while($n <= '5')
{
c("chromium$n")->url = 'http://www.agar.re/';
$n++;
}
Но загружают сайт только два или три хромиума остальные не загружают сайт.
Я думал что я что-то накосячил в цикле.
И попробовал запустить их обычным (последовательным) путём.
Вот так:
c("chromium1")->url = "http://www.agar.re/";
c("chromium2")->url = "http://www.agar.re/";
c("chromium3")->url = "http://www.agar.re/";
c("chromium4")->url = "http://www.agar.re/";
c("chromium5")->url = "http://www.agar.re/";
Результат тот-же. (Загружают страницу только два или три хромиума)
Сколько я в DS сижу некогда такого не видал.
В чём проблема?!
Я подумал что хромиумы немогут загрузиться сразу все и стал загружать их по цепочке через определённое количество времени (3 сек). (на скринах смотри неуместилось)
Всё ровне результат тот же.
Я подумал что хромиумы мешают друг другу в принцепе и запихнул их по разным потокам.
Вот так:
$potok1 = new TThread; //Создаю потоки 1,2,3,4,5 (объясняю тем кому непонятно что это)
$potok2 = new TThread;
$potok3 = new TThread;
$potok4 = new TThread;
$potok5 = new TThread;
$potok1->onExecute = c("chromium1")->url = "http://www.agar.re/"; //Задаю события на потоки.
$potok2->onExecute = c("chromium2")->url = "http://www.agar.re/";
$potok3->onExecute = c("chromium3")->url = "http://www.agar.re/";
$potok4->onExecute = c("chromium4")->url = "http://www.agar.re/";
$potok5->onExecute = c("chromium5")->url = "http://www.agar.re/";
$potok1->resume(); //Запускаю потоки.
$potok2->resume();
$potok3->resume();
$potok4->resume();
$potok5->resume();
Вроде бы всё должно было быть идеально.
Каждый хромиум должен был работать в своём потоке и не мешать всем остальным.
НО нет!
Результат тот же!
Теперь видео загружено и доступно!

По каким-то причинам если видео неотображается
смотрите его тут: www.youtube.com/watch?v=RIf9z3B0pIE
Проблема решена!
Вопрос закрыт.
начните с того, что данные в браузер поступают асинхронно и понять, что загрузка произошла - вы не определите! а данные поступают неравномерно... возможно сервер отслеживает активность с одного клиента и снижает приоритет потоков, что бы избежать лишней нагрузки... то все это очевидная картина...
Не вижу видео.