Судя по окну, это Виндовс 8 или 8.1? Последние версии бас работают только на Виндовс 10 или 11
Как реализовать паузу работы потоков при смене айпи мобильного прокси
-
Всем привет, я использую в своем проекте мобильные прокси в которых есть возможность смены айпи по переходу по ссылке. Каждый раз когда идёт смена айпи сама работа прокси останавливается на некоторый промежуток времени, где-то до 10-20 сек.
Запуск скрипт в режиме Repeat, количество потоков указано через интерфейс(имею ввиду что ничего не костылиль в плане запусков потоков)
У меня есть всего 10 прокси, и я запускаю свой скрипт в 10 потоков, каждому потоку назначается свой прокси.
Мне нужно делать смену айпи каждую минуту, и при этом я хочу реализовать возможность приостанавливать работу потоков на время когда айпи находятся в процессе смены.Сейчас у меня довольно таки простое решение, я просто запускаю асинхронную функцию в которой бесконечный цикл, который меняет айпи через 60 секунд сна. Минус такого решения, что в какой-то момент потоки выдают ошибки, потому что прокси падают и иногда эти ошибки критичны.
Подытожу:
- Есть ли возможность приостанавливать работу потока, например в потоке какой-то слушатель который может перерывать основной флоу работы потока и выполнять действия внутри слушателя.
- Может быть я не в ту сторону двигаюсь в своем решении задачи, подскажите пожалуйста кто сталкивался с подобной ситуацией и как вы обходили её.
-
Штатными средствами нельзя.
Только если вводить глобальную переменную, которая будет сигнализировать о том, что надо потоки ставить на паузу.
Потом создать функцию, которая проверяет статус этой глобальной переменной, и если статус пауза - запускать цикл с паузой с проверкой, не снялась ли пауза.
Потом уже в код потока пихать эту функцию в наиболее критичных местах, где стоит поставить поток на паузу.