Получение параметров от пользователя во время работы



  • Задача:
    войти на сайт, выполнить ряд действий, запросить форму на ввод данных от пользователя, и после получения продолжить работу. Как?





  • а в многопотоке как отработает? надо ведь один раз спросить.



  • @verhov said in Получение параметров от пользователя во время работы:

    а в многопотоке как отработает? надо ведь один раз спросить.

    Каждый поток будет спрашивать, но можете выставить условие в зависимости от номера потока.



  • @verhov
    Или присвойте глобальной переменной значение при котором запрос появляться не будет, а перед каждым запросом проверяйте ее значение. Это на случай, если важно, чтобы запрос произошёл как можно раньше.



  • @xclsv said in Получение параметров от пользователя во время работы:

    @verhov
    Или присвойте глобальной переменной значение при котором запрос появляться не будет, а перед каждым запросом проверяйте ее значение. Это на случай, если важно, чтобы запрос произошёл как можно раньше.

    так все потоки подойдут к запросу к тому моменту времени, скрипт запускается минут за 10 до момента, когда надо будет спросить человека

    @fox said in Получение параметров от пользователя во время работы:

    @verhov said in Получение параметров от пользователя во время работы:

    а в многопотоке как отработает? надо ведь один раз спросить.

    Каждый поток будет спрашивать, но можете выставить условие в зависимости от номера потока.

    т.е. спрашивать в первом, а в остальных зациклить и ждать изменение глобальной переменной?



  • @verhov said in Получение параметров от пользователя во время работы:

    т.е. спрашивать в первом, а в остальных зациклить и ждать изменение глобальной переменной?

    Да, как вариант.



  • @verhov said in Получение параметров от пользователя во время работы:

    т.е. спрашивать в первом, а в остальных зациклить и ждать изменение глобальной переменной?

    Ну по факту, действие запрашивающее ввод будет во всех потоках. Но выполняться оно должно по условию принятия значения глобальной переменной. К примеру, первые 4 потока по каким-то причинам затупят(медленный прокси, долго отвечает сайт и т.п.), а пятый первым доберется до действия Запросить ввод от пользователя. Перед выполнением действия меняете глобальную переменную - и у остальных потоков, в том числе первых 4, условие при котором снова произойдет это действие никода не выполнится.
    Вроде бы циклов не нужно.



  • @xclsv said in Получение параметров от пользователя во время работы:

    Ну по факту, действие запрашивающее ввод будет во всех потоках. Но выполняться оно должно по условию принятия значения глобальной переменной. К примеру, первые 4 потока по каким-то причинам затупят(медленный прокси, долго отвечает сайт и т.п.), а пятый первым доберется до действия Запросить ввод от пользователя. Перед выполнением действия меняете глобальную переменную - и у остальных потоков, в том числе первых 4, условие при котором снова произойдет это действие никода не выполнится.
    Вроде бы циклов не нужно.

    пока надо решить вопрос с капчей и другими гет постами... до много потока не скоро добирусь, но смысл понял.



  • @verhov said in Получение параметров от пользователя во время работы:

    @xclsv said in Получение параметров от пользователя во время работы:

    Ну по факту, действие запрашивающее ввод будет во всех потоках. Но выполняться оно должно по условию принятия значения глобальной переменной. К примеру, первые 4 потока по каким-то причинам затупят(медленный прокси, долго отвечает сайт и т.п.), а пятый первым доберется до действия Запросить ввод от пользователя. Перед выполнением действия меняете глобальную переменную - и у остальных потоков, в том числе первых 4, условие при котором снова произойдет это действие никода не выполнится.
    Вроде бы циклов не нужно.

    пока надо решить вопрос с капчей и другими гет постами... до много потока не скоро добирусь, но смысл понял.

    Успехов!



  • @xclsv said in Получение параметров от пользователя во время работы:

    Ну по факту, действие запрашивающее ввод будет во всех потоках. Но выполняться оно должно по условию принятия значения глобальной переменной. К примеру, первые 4 потока по каким-то причинам затупят(медленный прокси, долго отвечает сайт и т.п.), а пятый первым доберется до действия Запросить ввод от пользователя. Перед выполнением действия меняете глобальную переменную - и у остальных потоков, в том числе первых 4, условие при котором снова произойдет это действие никода не выполнится.
    Вроде бы циклов не нужно.
    но надо приостановить работу...

    короче добрался до этого
    в самом начале 2 глобальных переменных, запрос и флаг, ставим в 0 их.

    потом в теле:
    while глобал_запрос==0
    if глобал_флаг==0
    установить глобал_флаг 1
    ввод от пользователя запрос_темп
    установить глобал_запрос запрос_темп

    в результате БАС съедает 25-30% проца и не отвечает :( (проц и5). 2 потока



  • @verhov said in Получение параметров от пользователя во время работы:

    в результате БАС съедает 25-30% проца и не отвечает :( (проц и5). 2 потока

    Добавьте в цикле действие "Сон", хотя бы на 1000 мс



  • @fox said in Получение параметров от пользователя во время работы:

    Добавьте в цикле действие "Сон", хотя бы на 1000 мс

    слишком быстро работал? :)


Log in to reply