Остановить все потоки, а потом снова запустить.



  • пробую делать так:

    1. проверка 1й ли тред (только первый будет управлять этим процессом).
    2. если первый решил заменить прокси в proxifier он ставит глобальную переменную STOP==true, читает конфиг проксифаера, меняю там прокси, "запустить процесс" перезаливаю конфиг в проксифаер и ставлю STOP==false.
    3. остальные процессы вначале всегда проверяют эту глобальную переменную, если true то "закрыть браузер" и while пока снова не будет false, после чего "открыть браузер" и продолжить работу.

    должно взлететь, отпишу по факту :)


  • administrators

    @Sevenup Самый просто метод - использовать действие "Вызов функции в несколько потоков" и обернуть его в цикл.



  • @support said in Остановить все потоки, а потом снова запустить.:

    @Sevenup Самый просто метод - использовать действие "Вызов функции в несколько потоков" и обернуть его в цикл.

    Запустить N к-во раз функцию например в 10 потоков,потом поменять прокси и снова и т.д. я верно понял Вас?

    а как контролировать выполнение потоков фукнции? пока всёк-во запущенных потоков функции не закончатся,к следующему кубику не произойдет переход?



  • а когда функция запускается многопоточно, каждый поток - это отдельный браузер, в нем будет отдельные куки? т.е. внутри многопоточной функции я могу применить отпечаток и он будет уникален для каждого потока функции. Это равносильно многопоточному запуску функции main когда я запускаю проект, верно?



  • @Sevenup да



  • @DrPrime said in Остановить все потоки, а потом снова запустить.:

    @Sevenup да

    Красота! Спасибо.
    1й поток всегда открыт на about:blank - это норма, верно? т.е. основной поток будет завершен успешно только тогда, когда все потоки многопоточной функции завершаться успешно. А как на счет галки "перезапускать процесс в начале работы потока"? Она будет применима к многототочной функции равносильно как вобычном многопоточном запуске проекта? Localstorage будет очищаться?



  • @Sevenup about.blank это нормально, можно вообще открывать и закрывать браузер в функции, тогда в основном потоке браузер открываться не будет.
    По поводу localstorage не подскажу, но можно попробовать делать сброс с перезапуском вконце функции



  • понял, спасибо. Подождем еще автора, он то точно прояснит про localstorage в многопоточной функции :)

    Еще заметил не приятную багу: все ошибки в многопоточной функции в лог не выводятся. Она просто падает в "неудачное выполнение", а что там было не удачным, переменная пустаяилиеще что, не ясно :(



  • This post is deleted!


  • @Sevenup Блок настройки браузера надо ставить в начале, так как при этом перезапустится браузер. На всех сайтах с флешем такая проблема?



  • @Fox said in Остановить все потоки, а потом снова запустить.:

    @Sevenup Блок настройки браузера надо ставить в начале, так как при этом перезапустится браузер. На всех сайтах с флешем такая проблема?

    закрыл, открыл БАС и заработало.
    Теперь пытаюсь придумать, как принудительно включать нужный плагин выполняя JS код, что бы не зависеть от отпечатка. Сейчас приходится дергать сервис отпечатков пока не получу отпечаток например с флешем. Не хотелось бы нагружать таким способом сервис отпечатков.

    Если есть опыт в JS подсказать пожалуйста, что делаю не так:
    Object.defineProperty(window.navigator, 'mimeTypes', {get: function() {
    return [{description:"Shockwave Flash", "suffixes":"swf", "type":"application/x-shockwave-flash"},{description:"Shockwave Flash", "suffixes":"spl", "type":"application/futuresplash"}]; }});

    Object.defineProperty(window.navigator, 'plugins', {get: function() {
    return [{name:"Shockwave Flash", description:"Shockwave Flash 26.0 r0", "filename":"pepflashplayer.dll", 0:window.navigator.mimeTypes[0], 1:window.navigator.mimeTypes[1] }]; }});



  • @Sevenup С js знаком с натяжкой. Включать нужный плагин можно и не через js код, можно в самом файле ручками его поменять, прочитать, пройтись регуляркой и поменять что нужно. Или изначально выкачать отпечатки с флешем, проверяя их на входе. Сохранить их и использовать уже сохранённые.



  • @Fox said in Остановить все потоки, а потом снова запустить.:

    @Sevenup С js знаком с натяжкой. Включать нужный плагин можно и не через js код, можно в самом файле ручками его поменять, прочитать, пройтись регуляркой и поменять что нужно. Или изначально выкачать отпечатки с флешем, проверяя их на входе. Сохранить их и использовать уже сохранённые.

    да, вот только вариант с выкачать и остается :( так и делаю.
    Но красиво же было бы, если бы так чик пик запустил код и добавил/удалил/переназначил плагин. В общем-то чувствую я уже близко :) но вот с mimeTypes что-то не выходит.



  • Идея напарсить отпечатков с флешем отличная, только вот быстро сервис ложиться и залипает на "получить отпечаток" :( каждый 10й например с флешем, что бы 10 отпечатков получить нужно 100 раз сходить на сервер. Ключ с лимитом 1000 в минуту не спасает, очень быстро сервер уходит с бесконечное ожидание. Попробую днем завтра, может сейчас кто-то его активно использует :)



  • @Sevenup Тебе сколько нужно отпечатков с флешем? Поставь выгрузку с ожиданием на ночь, по тихоньку выгрузится.
    А вообще я бы прямо в отпечатке регуляркой менял ))



  • @Fox said in Остановить все потоки, а потом снова запустить.:

    @Sevenup Тебе сколько нужно отпечатков с флешем? Поставь выгрузку с ожиданием на ночь, по тихоньку выгрузится.
    А вообще я бы прямо в отпечатке регуляркой менял ))

    как-то так и сделал, к утру надеюсь подтянутся.

    ага, не все там так просто :) регуляркой не обойдешься. Загляни внутрь и поймешь. Не ну если кто справиться, с меня арбуз! :)

    тут надо научиться работать с API navigator, тогда можно блоком "выполнить код в начале загрузкикаждой страницы" менять плагины, шрифты и много чего в отпечатке.



  • если в многопоточную функцию, в конце всех условия вставляю "закрыть браузер", то данная функция заканчивается на нечавшись. т.е. каждый ее поток сразу завершается.
    Как так? Куда бы я не вставил "закрыть браузер", даже обернув в if(2==1) функция все равно закрывается не начавшись. Как только убираю этот блок все ок. Я не верно использую метод "закрыть браузер" или бага?



  • @Sevenup Если ты используешь экшен закрыть браузер, то перед ним обязательно должен быть открыть браузер.



  • @Fox said in Остановить все потоки, а потом снова запустить.:

    @Sevenup Если ты используешь экшен закрыть браузер, то перед ним обязательно должен быть открыть браузер.

    эмммм, а разве "браузер"->"загрузить" не открывает браузер? ну т.е. в смысле когда поток начался он же открывает браузер.

    нашел вот http://community.bablosoft.com/post/3210 пошел эксперементировать :)

    Например 10 потоков запущены многопоточной функцией, мне нужно сменить прокси (то, что мы обсуждали выше).

    Вариант 1: нужно дождаться выполнения всех потоков в функции, что не гуд, так как 9 потоков закончились, а 1 еще работает и теряем время(ресурс). Каждый поток работает с разной задачей разное время.

    Вариант 2: когда пришло время, дропаем на чем есть, не важно завершился ли поток (или ставим на паузу, в начало выполнения) все потоки, а после смены прокси запускаем их все сначала. Как это сделать пока не знаю.

    Суть в том, что бы в один момент (когда меняется прокси) прекратить все запросы и после смены прокси запустить определенную функцию с начала.


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.