@andreyv если в старой версии работает, то и в новой должно работать. Почитайте эти темы, возможно найдете решение:
https://community.bablosoft.com/post/93481
https://community.bablosoft.com/post/77880
Если работаете со списком аккаунтом предлагаю такой сетап.
Успехи, неудачи в 10000
Потоки задает юзер.
Завершение по исчерпанию ресурса.
По сравнению с подходом предложенным в теме есть несколько преимуществ
Можно динамически менять число потоков.
Не нужно самостоятельно выставлять число успехов/неудач.
Вот, программа полностью выключится, когда в файле аккаунтов станет пусто. Полностью, даже если неудач будет 100к, то получение аккаунта, у меня в скрипте идёт первое, то есть там буквально за 15-20 минут вырубается.
!Но при этом если предыдущие потоки не закончили свою работу, то вся программа - всё равно останавливается. Вот по этому и интересует момент не перезапуска потока, а именно отключение как бы.
Насчёт "вечного сна" - о такой реализации уже подумал, но ведь при этом у нас получается лишний открытый браузер и т.д
@support said in Закрытие потока после выполнения задачи.:
Скрипт завершается при одном из 4 условий -
Достигнуто макс количество успехов.
Макс количество неудач.
Использованы все ресурсы.
Вызвано "Прервать Скрипт"
Тут именно идёт завершение скрипта, и он заново начинает с нуля, если успех или ошибок хватает. А наша цель, что бы он отработал - и больше не перезапускался, а остальные потоки, которые еще не закончили своё дело - продолжили работать полноценно.
Большой лимит ошибок - не спасает, так как именно поток который закончил - очень быстро их все использует, так как у нас БОЛЬШЕ нету аккаунтов, а он всё получает и получает.
@kibec Если брать ресурсы ни в ручную, а через {{ }}, то прерываться не должно, потому что мне уже админ объяснил, что как только поток берет ресурс, то он лочится, а с залоченными ресурсами скрипт прерваться не может. (т.е. при попытке взять ресурс из пустого списка, скрипт не прервется, пока список залочен)
Тут именно идёт завершение скрипта, и он заново начинает с нуля, если успех или ошибок хватает. А наша цель, что бы он отработал - и больше не перезапускался, а остальные потоки, которые еще не закончили своё дело - продолжили работать полноценно.
Так и будет происходить. Поток, который перезапустился будет вечно ждать ресурса
@kibec Вот проект который демонстрирует этот подход:
Вот сам файл:
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
Вот вывод:
[19:33:47] Поток №1 : Начинаю работу с ресурсом line1
[19:33:47] Поток №2 : Начинаю работу с ресурсом line2
[19:33:47] Поток №3 : Начинаю работу с ресурсом line3
[19:33:47] Поток №4 : Начинаю работу с ресурсом line4
[19:33:47] Поток №5 : Начинаю работу с ресурсом line5
[19:33:48] Поток №2 : Работа с ресурсом завершена line2
[19:33:48] Поток №2 : Поток выполнен успешно с сообщением "Ok"
[19:33:48] Поток №2 : Начинаю работу с ресурсом line6
[19:33:52] Поток №1 : Работа с ресурсом завершена line1
[19:33:52] Поток №1 : Поток выполнен успешно с сообщением "Ok"
[19:33:52] Поток №1 : Начинаю работу с ресурсом line7
[19:33:52] Поток №5 : Работа с ресурсом завершена line5
[19:33:52] Поток №5 : Поток выполнен успешно с сообщением "Ok"
[19:33:52] Поток №5 : Начинаю работу с ресурсом line8
[19:33:52] Поток №2 : Работа с ресурсом завершена line6
[19:33:52] Поток №2 : Поток выполнен успешно с сообщением "Ok"
[19:33:52] Поток №2 : Начинаю работу с ресурсом line9
[19:33:53] Поток №3 : Работа с ресурсом завершена line3
[19:33:53] Поток №3 : Поток выполнен успешно с сообщением "Ok"
[19:33:53] Поток №3 : Начинаю работу с ресурсом line10
[19:33:55] Поток №1 : Работа с ресурсом завершена line7
[19:33:55] Поток №1 : Поток выполнен успешно с сообщением "Ok"
[19:33:56] Поток №4 : Работа с ресурсом завершена line4
[19:33:56] Поток №4 : Поток выполнен успешно с сообщением "Ok"
[19:33:56] Поток №5 : Работа с ресурсом завершена line8
[19:33:56] Поток №5 : Поток выполнен успешно с сообщением "Ok"
[19:33:57] Поток №3 : Работа с ресурсом завершена line10
[19:33:57] Поток №3 : Поток выполнен успешно с сообщением "Ok"
[19:34:01] Поток №2 : Работа с ресурсом завершена line9
[19:34:01] Поток №2 : Поток выполнен успешно с сообщением "Ok"
[19:34:01] Поток №2 : Поток аварийно завершился с сообщением "не удалось получить ресурс file"
[19:34:01] Поток №1 : Поток выполнен успешно с сообщением "Ok"
[19:34:01] Поток №3 : Поток выполнен успешно с сообщением "Ok"
[19:34:01] Поток №4 : Поток выполнен успешно с сообщением "Ok"
[19:34:01] Поток №5 : Поток выполнен успешно с сообщением "Ok"
[19:34:01] Скрипт завершен корректно
Как видите, отработали все строки.