Автоматическая смена прокси, если он отвалился

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Нужно помощь.
Есть несколько шаблонов на каждом своя прокся.
Вся работа крутится в кубике C#
Когда прокся отваливается (да, покупаем дорогие индивидуальные элитные прокся, но и они тоже иногда отваливаются) страничка просто грузится, грузится и шаблон может часами стоять и грузиться... А у меня шаблоны работают в связке 1+5 или 1+10, общаясь друг с другом через глобалки, и если один встал, то остальные тоже стоят... да вот такая логика)
Вопрос.
Что и как можно сделать чтобы если прокся отвалился, делалась его замена и работа не прекращалась.
Моя идейка
вместо waitdownloads просто ставить систем слип, например на 1-2 секунды циклом пробегать раз 10, типа будет 10-20 сек и если нет ответа, то вылетать по ошибке, менять прокся и заходить в этот же кубик по-новому.

Может есть решение изящнее и быстрее.
Спасибо
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 359
Благодарностей
5 441
Баллы
113

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 359
Благодарностей
5 441
Баллы
113
видимо нет, раз я не понимаю что это такое...
Что за таймауты и где их настроить можно?
Интересно, на C# значит вы смогли сделать шаблон, а базовые функции ZennoPoster`а не знаете.

Я бы скинул уроки, да вики в ауте =(
2020-11-28_013219.jpg
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Интересно, на C# значит вы смогли сделать шаблон, а базовые функции ZennoPoster`а не знаете.

Я бы скинул уроки, да вики в ауте =(
может и знаю, просто не знаю что это так называется))
А шабы да, на 80-90% это С#, и длинющие по 800-1000 строк))
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Интересно, на C# значит вы смогли сделать шаблон, а базовые функции ZennoPoster`а не знаете.

Я бы скинул уроки, да вики в ауте =(
погуглил, да, не юзал это.
получается мне после каждого вызова таба (поиска элемента на активной вкладке) нужно ставить какое-то время в инте, например 10.
tab.NavigateTimeout = 10
и как эта штука работает, если пройдет больше 10 секунд. Что она выдает? булево значение или что?
C#:
Tab tab = instance.ActiveTab;
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate(site, "");
tab.NavigateTimeout = 10;
if (tab.IsBusy) tab.WaitDownloading();
или она разово вставляется и действует на весь инстанстактитаб, тогда юзать вот так
C#:
Tab tab = instance.ActiveTab;
tab.NavigateTimeout = 10
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate(site, "");
if (tab.IsBusy) tab.WaitDownloading();
//дальше мой код...
Спасибо)
Да, я самоучка, учусь по-тихому...
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 359
Благодарностей
5 441
Баллы
113
Сам по шарпу не спец. Но таймаут вроде есть. Значит дело не в таймауте.
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
  • Спасибо
Реакции: Mikhail B.

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 705
Баллы
113
просто не используй WaitDownloading() , он может не отпустить никогда. особенно если на странице ajax или какая нибудь мерзкая метрика, которая постоянно шлет запросы.
сделай метку прогруза и сделай цикл до N -секунд и опрашивай метку tab.IsBusy, если метка изменится то выход из цикла с меткой прогруза = good, если дошли до конца цикла , то метка прогруза = bad
потом ставишь логику анализа метки и там уже делаешь что надо, прокси меняешь или еще что плохое творишь :-)
все это хозяйство можешь обернуть во внешний цикл попыток прогруза страницы. и выходить с ошибкой если за M-количество попыток сайт не загрузился.
 
  • Спасибо
Реакции: arbplv

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
просто не используй WaitDownloading() , он может не отпустить никогда. особенно если на странице ajax или какая нибудь мерзкая метрика, которая постоянно шлет запросы.
сделай метку прогруза и сделай цикл до N -секунд и опрашивай метку tab.IsBusy, если метка изменится то выход из цикла с меткой прогруза = good, если дошли до конца цикла , то метка прогруза = bad
потом ставишь логику анализа метки и там уже делаешь что надо, прокси меняешь или еще что плохое творишь :-)
все это хозяйство можешь обернуть во внешний цикл попыток прогруза страницы. и выходить с ошибкой если за M-количество попыток сайт не загрузился.
Спасибо, Да у меня были похожие мысли, писал в самом первом посту, просто думал может как-то проще можно это реализовать, а
NavigateTimeout вот эта штука не решит проблему? Интересно что это за таймаут и зачем его придумали))?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 705
Баллы
113
Спасибо, Да у меня были похожие мысли, писал в самом первом посту, просто думал может как-то проще можно это реализовать, а
NavigateTimeout вот эта штука не решит проблему? Интересно что это за таймаут и зачем его придумали))?
может и решит. попробуй, потом нам расскажешь :-)
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
может и решит. попробуй, потом нам расскажешь :-)
хотелось бы услышать от поддержки что это за метод такой и для чего его нужно использовать, в документации как то все скудненько описано...
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)