notreuse некорректно работает?



  • С обновлением у меня поломался скрипт.
    Вот есть у меня файл в нем аккаунты формата login:pass
    Ставлю колличество потоков 5
    Ставлю колличество выполнений 7
    На файл ресурса поставлен параметр notreuse - в итоге, используются только две строчки, а остальные удаляются.

    Если убираю параметр notreuse то все нормально, только вот данные повторяются одни и те же по нескольку раз.
    В чем причина, помогите?!



  • @olegtut настройки нужно выставлять здесь
    0_1490894772429_notreuse.png
    Эти все настройки относятся к 1 строке из файла



  • Так и стоит. И да же при таких настройках и выставленном notreuse, скрипт все равно повторно берет данные их файлы



  • @olegtut такого впринципе быть не может, где-то допустили ошибку, нужно видеть сам скрипт. нотреюзе при таких настройках можно и не использовать. Эту настройку выставить нужно на ресурсе с логинами. Одновременное использование обязательно 1



  • Вообщем как получается теперь. Скрипт все равно делает повторы, но теперь с запасом. Т.е., если я скажу, что мне нужно колличество выполнений 7, то он сделает 10, т.е. 7 верных и 3 повтора.



  • @olegtut said in notreuse некорректно работает?:

    нужно колличество выполнений 7

    чего именно? общих выполнений скрипта или выполнений с 1 логина?



  • @seedgg
    7 разных логинов



  • @olegtut успешных использований должно стоять 1 и количество обновременных использований тоже 1, если в файле больше 7 логинов скрипт будет работать, пока не обработает все логины, для того, чтобы он остановился нужно настройки здесь еще выставить

    0_1490896371359_notreuse1.png

    Эти значения относятся ко всему скрипту



  • @seedgg
    Выставил, у меня БАС похоже сломался...



  • @olegtut наврядли, просто вышлите часть логики скрипта, минимальное действие....это даже может быть вывод в лог поочередно значений от 1 до 7.... без повторений, и скрипт завершит свою работу, с настройками помогу



  • @olegtut вот пример многопоточной работы, без повторений. Просто запускайте
    0_1490900952535_test.rar



  • в логах смотрите работу скрипта, какой поток и какие значения....и скрипт успешно завершает работу, без повторений. Если данных больше, и нужно обработать всего 7, то ставите успешных ВЫПОЛНЕНИЙ 7



  • @seedgg

    Вот часть моего скрипта, в файле 13 строчек. Если выставить колличество выполнений 13 и потоков 13, то все окей. Но вот, если, к примеру, выставить 4 потока и 8 выполнений, то скрипт всё равно выведит одиннадцать строчек...

    0_1490954695516_bas.rar



  • @olegtut Да действительно так, но это как бы и не баг...это просто нюанс многопоточной работы. Но это все можно обойти, чтобы были правильные результаты. Когда поток начинает свою работу у него данные успешных выполнений = 0, так они (потоки) начинают свою работу одновременно, чтобы этого избежать нужно использовать переменную номера потока в начале скрипта и выставлять паузу типа [[THREAD_INDEX]] * 3000 (для примера), а потом делать вызов функции "успешных выполнений" и делать проверку если она не больше того значения что мы указали. Если больше, тогда ставим фейл с галочкой не перезапускать поток вот маленький пример 0_1490965445583_test2.xml



  • Паузу нужно подбирать, так как нужно учитывать время выполнения действий внутри скрипта, чтобы поток закончился с отметкой УСПЕШНО



  • @seedgg
    Спасибо, ты бог! ^_^



  • @seedgg
    а в чем может быть причина, если из файла берутся строки непропорционально. Таким образом, при десяти строках, скрипт говорит, что уже всё обработал на 7 потоке...



  • @olegtut Нужно смотреть логи, возможно некоторые потоки раньше завершили свою работу и обработали со списка по 2-а значения, если вся работа идет через прокси, тут тоже все зависит от скорости прокси который взял поток. Тот прокси может быть быстрее но поток, который начался позже, может завершится раньше. Нужно смотреть где в логике написания скрипта ошибка, а если ее нету, то нужно придумывать алгоритм скрипта, чтобы все обрабатывалось правильно. Опыт показывает, что вроде пишешь скрипт, вроде все нормально, но когда начинаешь тестить, вылазит куча побочных факторов, которые нужно "обыгрывать". Когда тестишь, желательно для скрипта делать наихудшие события, которые могут случится. Одним словом, до окончательного результата, обязательно будет куча багов, которые нужно исправлять. На данный момент затрудняюсь сказать в чем причина. В предыдущем варианте который вы мне прислали(хотя я с таким не сталкивался), я предложил вариант как это можно все "обыграть". Просто разработка многопотока, - нужно и думать на перед как оно будет работать в многопотоке, а не как разработанный скрипт для 1 потока при отладке, и чтобы оно работало без багов в многопотоке. Я на данным момент просто не понимаю самой задачи, которая должна быть. Возможно трудно проследить что делает каждый поток....поставьте большую паузу для теста и проследите, что идет не так.



  • @seedgg
    Прокси не использую. Да вот я и пытаюсь сделать эту чертову отладку, смотрю логи, но каждый раз ошибка ускользает от меня. Вот интересная картина: я выставил в один поток с количеством выполнений 10. В итоге из файла брались только четные строки, т.е. 2, 4, 6, 8,10, 12. С чем это вообще может быть связано, я даже хз...



  • Всё, нашел ошибку. Проблема была в том, что я добавил notreuse к ресурсу... жесть какая.