Проблема с многопотоком и while

Поддержка
  • В многопотоке появился нюанс: в шабе есть два цикла:

    • while 1==1 бесконечно в нём крутится и выполняет задания внутри него второй
    • while ([[TIM_START]]) >= ([[CYCLE_INDEX]]):
      TIM_START время захваченное с сайта задано числом
      Второй цикл сделан ради организации таймер и внутри него всего два действия, это спать 1 мин, вывести в лог сколько уже спит.
      В один поток всё работает корректно:
      заходим на сайт, синхронизируем таймер, попадаем в первый бесконечный цикл, выполняем задание, попадаем в цикл таймера, выполняем его, возвращаемся в основной цикл. И так по кругу.
      В многопотоке же он начинает делать всё правильно НО когда выходит из второго цикла таймера он закрывает поток вместо того чтобы вернуться в основной цикл. И так происходит со всеми потоками пока в итоге не останется один. И вот этот единственный "выживший" работает как задумано.
      Куда копать? И как это решить?
      П.с. Ещё появился нюанс. Когда шаб выполняешь по шагам в режими записи он вызывает функцию, заходит в неё, выполняет задание НО! не выходит обратно в main а просто заканчивает. Якобы всю на этом шаб закончился хотя это далеко не так. Иногда это лечится созданием нового пустого шаба и внём несколько функций где они корректно отрабатываю а потом вернувшись к рабочему шабу там тоже работает. Но далеко не всегда...
  • @Oleg_Pvk Если вы про небезызвестный сайт

    6d2e898d-4cc1-4dc5-9d62-434315d77c55-изображение.png

    то зачем вообще использовать действие "Спать"? Формируйте базу с аккаунтами и дату последнего захода аккаунта на сайт. Потом просто в цикле перебирайте аккаунты у которых подошло время

  • @Fox said in Проблема с многопотоком и while:

    @Oleg_Pvk Если вы про небезызвестный сайт

    6d2e898d-4cc1-4dc5-9d62-434315d77c55-изображение.png

    то зачем вообще использовать действие "Спать"? Формируйте базу с аккаунтами и дату последнего захода аккаунта на сайт. Потом просто в цикле перебирайте аккаунты у которых подошло время

    Спасибо! Я думал об этом способе, т.к. нету опыта отложил его и решил сначала с одни аккаунтом разобраться, потом с многопотоком и в конце уже попробовать с базой аккаунтов. Единственное касаемо базы я пока не нашёл способа как лучше за аккаунтом закрепить отпечаток и куки чтобы уменьшить время на обработку аккаунта за счёт экономии трафика и отсутсвя необходимости авторизации на сайте.
    Сейчас у меня база с аккаунтами лежит в файле и каждая строка файла это аккаунт в формате:
    почта : пароль : тип прокси : айпи прокси : порт : логин : пароль
    Эта строка парсится в список и потом по месту вставляется. Добавив в неё отпечаток и куки сделаю не читаемый фаил для пользователя и правка его будет затруднена объёмом информации в одной строке.

    Я нашёл ошибку у себя в коде и понял почему остальные потоки закрываются. В общем тут я грешен. Если поток попадает на сайт и там нет таймер то он пропускает синхронизацию таймера и по порядку объявляет сначала первый бесконечный цикл а потом уже второй на котором организован таймер. Если же поток попадает на сайт до того как вышло время до следующего рола то он заходит в функцию синхронизации таймера устанавливает переменную таймера и выходит из цикла через метку сразу во второй цикл не объявляя первый бесконечный но при этом попадя внутрь его тела.

  • @Fox А ниче так фокс там крутит :)

  • @kingsize said in Проблема с многопотоком и while:

    @Fox А ниче так фокс там крутит :)

    Тссс, не пали контору :D

  • 0 Votes
    6 Posts
    756 Views
  • 0 Votes
    3 Posts
    505 Views
  • 0 Votes
    6 Posts
    833 Views
  • 0 Votes
    6 Posts
    5836 Views
  • 0 Votes
    4 Posts
    897 Views