Как реализовать паузу работы потоков при смене айпи мобильного прокси

Поддержка
  • Всем привет, я использую в своем проекте мобильные прокси в которых есть возможность смены айпи по переходу по ссылке. Каждый раз когда идёт смена айпи сама работа прокси останавливается на некоторый промежуток времени, где-то до 10-20 сек.

    Запуск скрипт в режиме Repeat, количество потоков указано через интерфейс(имею ввиду что ничего не костылиль в плане запусков потоков)

    У меня есть всего 10 прокси, и я запускаю свой скрипт в 10 потоков, каждому потоку назначается свой прокси.
    Мне нужно делать смену айпи каждую минуту, и при этом я хочу реализовать возможность приостанавливать работу потоков на время когда айпи находятся в процессе смены.

    Сейчас у меня довольно таки простое решение, я просто запускаю асинхронную функцию в которой бесконечный цикл, который меняет айпи через 60 секунд сна. Минус такого решения, что в какой-то момент потоки выдают ошибки, потому что прокси падают и иногда эти ошибки критичны.

    Подытожу:

    1. Есть ли возможность приостанавливать работу потока, например в потоке какой-то слушатель который может перерывать основной флоу работы потока и выполнять действия внутри слушателя.
    2. Может быть я не в ту сторону двигаюсь в своем решении задачи, подскажите пожалуйста кто сталкивался с подобной ситуацией и как вы обходили её.
  • Штатными средствами нельзя.
    Только если вводить глобальную переменную, которая будет сигнализировать о том, что надо потоки ставить на паузу.
    Потом создать функцию, которая проверяет статус этой глобальной переменной, и если статус пауза - запускать цикл с паузой с проверкой, не снялась ли пауза.
    Потом уже в код потока пихать эту функцию в наиболее критичных местах, где стоит поставить поток на паузу.

  • 0 Votes
    2 Posts
    322 Views
  • 0 Votes
    4 Posts
    433 Views
  • 0 Votes
    8 Posts
    767 Views
  • 0 Votes
    1 Posts
    398 Views
  • 0 Votes
    11 Posts
    1302 Views