Проблема в многопотоковом чекере прокси.



  • Вот тестовый чекер и файл прокси. В файле прокси 100 строк прокси, сам файл лежит в директории C:\proxy\1.txt
    Настройки ресурса:
    Успешный и ошибочных использований: 1
    Количество одновременных использований: 1
    Время между использованиями: 1

    По логике когда заканчиваются строки прокси в файле, поток должен завершится, но этого не происходит. Поток просто висит и ни чего не делает.
    Я прокоментировал каждый блок, чтобы это заметить. Пробовал увеличить время между использованиями, результат тот же, только дольше.



  • У меня в чекере в начале считается количество элементов в списке, создается переменная проверенных, затем в каждом цикле прибавляется 1 к переменной. Когда переменная равна количеству элементов в списке работа завершается.



  • @romanbiz А как ты организовал эту логику в многопотоке?

    А вообще не в чекере дело, а в логике действий. Почему потоки останавливаются, не завершаясь. Чтобы потом в подобной ситуации знать что делать.
    Ведь чекер можно любой написать, или скачать уже готовый, коих полно в инете. Да отдельно чекать файл перед запуском скриптов



  • Я изначально, когда только заметил этот косяк, подумал, что поток забирая последний прокси, записывает его в переменную. А когда в следующий раз пытается записать, ресурс ни чего не отдаёт и переменная не записывается, оставляя старое значение. Которое мусолится по кругу. Но тестовый чекер меня поставил в тупик.
    Сейчас у меня скрипт с этим чекером работает. Всем потокам хватило прокси, кроме одного. Вот он и зациклился на последнем значении.

    [23:34:14] Поток №4 : Хороший прокси не сработал.
    [23:34:14] Поток №4 : Нашли хорошую прокси 103.58.73.202:8080
    [23:35:15] Поток №4 : Хороший прокси не сработал.
    [23:35:15] Поток №4 : Нашли хорошую прокси 103.58.73.202:8080
    [23:35:21] Поток №4 : Хороший прокси не сработал.
    [23:35:21] Поток №4 : Нашли хорошую прокси 103.58.73.202:8080
    [23:36:14] Поток №4 : Хороший прокси не сработал.
    [23:36:14] Поток №4 : Нашли хорошую прокси 103.58.73.202:8080
    

  • administrators

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

    Вы правда рассчитываете, что скрипт завершится, когда последние 2 действия выглядят так?

    0_1494148002547_WhileTrue.png

    Также обратите внимание, что пока поток использует ресурс, он не может быть использован другими потоками, более того они будут ждать того времени, пока другой поток закончит с ним действия.
    Эта причина, по которой скрипт зависает не перед бесконечным циклом, а перед взятием ресурса.


Log in to reply
 

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