@onlywars Запрещено оскорблять пользователей форума. Отредактировал ваше сообщение, больше так не делайте.
Как перезапустить поток, используя те же данные из файла?
-
В общем бывает такая ситуация, что сайт по какой-то причине не открывается, сделал перезапуск потока в этом случае, но он при перезапуске из файла с аккаунтами берет следующее значение. Как можно сделать, чтобы в этом случае он брал значение не следующее, а именно то, на котором остановился до перезапуска, учитывая что скрипт работает в многопоточном режиме...
-
@Игорь777 Создать глобальную переменную и ресурс в нее, и при перезапуске пусть снова берет из нее. То есть ресурс у нас в глоб переменной а потоки берут строки исходя из индекса потока, если первый первую строку, нулевой нулевую, тогда они и не будут брать чужое и каждый будет работать со своей строкой из ресурса . Все это правда костыли, я делаю иначе, если он ошибается он возвращается на начало или в тот цикл где ошибка, проверка на ошибки у меня тоже своя. То есть сам поток не обнуляется а использует то что получил сначала, но это нужно продумывать логику скрипта сразу. Есть экшен ресурсы возможно поможет перезагрузить ресурсы, но я не работаю с этим экшеном и механику его работы не знаю. Как он выбирает строки я не знаю и привязывается ли к потокам.
-
@Игорь777 said in Как перезапустить поток, используя те же данные из файла?:
В общем бывает такая ситуация, что сайт по какой-то причине не открывается, сделал перезапуск потока в этом случае, но он при перезапуске из файла с аккаунтами берет следующее значение. Как можно сделать, чтобы в этом случае он брал значение не следующее, а именно то, на котором остановился до перезапуска, учитывая что скрипт работает в многопоточном режиме...
Используйте опцию "Жадный алгоритм" ресурса
-
@lotra Так смотрите, у меня в ресурсе по 50 аккаунтов на 1 поток... Даже, если запехну в глобальную переменную резултат не измениться, если сайт не открылся, единственное, что помогает перезапустить поток... Я пробовал делять проверку и запихивал ее в цикл с проверкой на загруженность сайта, в любом случае.. цикл работал пол часа, но так не удалось открыть сайт... Поэтому, воспользуюсь советом фокса и понаблюдаю...
-
@Fox К, сожалению... Жадный алгоритм не помог, сделал хуже... Он теперь берет периодически данные одни и те же в разные потоки вставляет... Мне надо бы, что бы именно, когда я поток перезапускаю, если сайт не загрузился, то он бы взял значения, с которыми он хотел работать до перезапуска потока... Жадный алгоритм мне никак не подходит(
-
@Игорь777 said in Как перезапустить поток, используя те же данные из файла?:
@Fox К, сожалению... Жадный алгоритм не помог, сделал хуже... Он теперь берет периодически данные одни и те же в разные потоки вставляет... Мне надо бы, что бы именно, когда я поток перезапускаю, если сайт не загрузился, то он бы взял значения, с которыми он хотел работать до перезапуска потока... Жадный алгоритм мне никак не подходит(
https://community.bablosoft.com/topic/10242/загрузка-фото-из-разных-папок-в-многопотоке/11
-
@Fox Попробовал я установить в жадном алгоритме "1", не помогло.... Стало брать одни и те же значения по кругу. Затем пробовал через метод RMap(), в лог вот такую информацию выводило... RMap("accs").at([[THREAD_INDEX]]-1) "RMap("accs").at(2-1)"... То есть функция не обрабатывается...
-
@Игорь777 said in Как перезапустить поток, используя те же данные из файла?:
, но он при перезапуске из файла с аккаунтами берет следующее значение.
увеличьте число ошибочных использования, тогда он этот элемент на втором круге все равно возьмет. А если важна очередность, тогда вам не нужен многопоток.
-
Я бы сделал или отдельны ресурс "ошибка" или глобальную переменную, перед перезапуском заносил бы текущий аккаунт туда. А перед использование основного ресурса, делал бы проверку, если в ресурсе ошибка аки, если есть берём с удалением и работаем по нему.
А не проще проксю менять ?
-
@Bigma Я думаю тут проблема в скрипте... По приколу попробовал в 2 потока заходить на гугл, ставил ожидающий режим рандомный от полторы до 2-х минут... И даже гугл, скажем зайдет раз 8, на 9 сайт не открывается, пробовал менять отпечатки и прокси рандомно брать, такая же фигня. Пробовал со своего IP адреса, тоже периодически гугл не открывался... Собственно, получается проблема в самом БАС..?
-
@Bigma Ты за дурака меня держишь? если выполнять просто голый гет запрос, этот сайт всегда на протяжение 4 часов 200 код отдает..., гугл также. А вот если использовать "загрузить URL", иногда не загружает сайт, хоть гугл... хоть яндекс или любой другой... С чем это связано, я не понимаю... На 2 серверах проводил тест, на домашнем ПК, с проксями, с мобильными пркосями... Без пркосей... Я с этой проблемой уже неделю мучаюсь... В начле думал проблема с сайтом, а потом оказалось что проблема видать в самой функции "загрузить URL"...
-
There are multiple solutions to your problem.
You just need to use "Ignore errors" action and define
in "On error" part what script should do.So you could set it just on google load action and define
to try to reload that page several times until its finally loaded.
You should do it in a loop and limit number of tries.Another solution would be to to use "Add Element" from
"Resource" action. Jet again you need to use "On error"
part of "Ignore errors" action, and define that in case of
error on loading google [age you write that current data
(user/pass) again to that same resource, so it will be used
again in case of current error later.That second approach will create duplicate lines, so you
need to make sure that you "remove duplicate lines" at
the end of script, or you could do it manually.That second solution opens new ideas with "Delete Current Element"
in case of success, but first solution is most elegant, while second
and third involves lot of unnecessary disk writing.