Как прервать процесс через 300 секунд и запустить его заново с перезапуском браузера?



  • Млин не получается...помогите плиз.Уже тыкали мне как сделать но не происходит так как я хочу.Мне надо чтобы браузер перезапускался через 300 секунд.
    Вот я сделал несколько потоков,каждый поток делает разные действия.Но нужно чтобы независимо не от чего поток закончил работу ровно через 300 секунд и перезапустился.Ошибки не ошибки,не загрузилась страница и т.д. без разница,главное чтобы поток через 300 сек перезапустился.

    Дел ов том что использую моильные прокси,а они даются только на 5 минут и получается что на входе один айпи,а на выходе другой айпи.

    Действие спать не поможет,так как точно не известно когда поток закончит работу,может и через 250 сек.а может и через 280 сек,н ов любом случае нужно чтобы перезапускался процесс ровно через 300 сек.

    Помогите плиз.
    Вроде как получается но дело в том что я не знаю куда вставить WHile в самое начало потока,то бишь идёт сначала While,а потом номер потока [[THREAD_INDEX]] == 2 или номер потока и потом уже внутри делать всё что нужно?
    Буду очень пре-очень благодарен.



  • Фиксируешь в начале скрипта время и проверяешь после каждого действия или как хочешь сам фиксируешь еще раз время уже на другую переменную и сраниваешь разницу сколько секунд если больше 300 сек то делаешь прервать скрипт при это поставив 999999 неудачных запусков



  • Спасибо большое за помощь но к сожалению не получается.
    Действия в скрипте заканчиваются например на 267 секунде и начинаются заново.Только потом когда прошло 300 сек,...а в это время действия уже второй раз проходят и пока не пройдут до конца не перезапускается.А это уже получается не 300 сек а больше.

    В общем ещё остаётся время до 300 секунд и неизвестно какое время,и скрипт начинает сначала.Уже не то.Надо чтобы жёстко работал ровно 300 секунд плюс минус 10 секунд,и потом перезапускался,даже если действия в самом скрипте заканчиваются на 240 секунде.Выждать ещё как-то 60 секунд и перезапустить.

    В голову вообще не приходит.

    Как я понимаю логику надо выждать оставшейся время до 300 сек и только тогда перезапускать процесс.

    Может кто подскажет?
    Я вижу такую логику:
    Получить время,прошли действия,получить время,установить переменную в которой прописать 300 минус конечное время,далее спать и прописать в сон то время которое получил (300 минус конечное время),потом уже перезапуск.Я правильно понимаю логику?



  • @bodlo Попробуйте сделать так: получить время,прибавить к ней 300 секунд и сохранить в переменную,дальше выполняется ваш скрипт.Потом в цикле while делается проверка : получить время,сверить с временем из той переменной,если сейчас время больше или равно той времени из переменной,то break,если нет,спать например 3 секунды и заново проверку делать.

    Например : сейчас 19:50,после добавления секунд поток должен будет завершиться в 19:55.Выполняется ваш скрипт,затем идет сверка,если еще рано завершать,то ждет.



  • @bodlo Без примера врятли кто то поможет вообще не понятно что вы там делаете



  • Сделал так,пошагово покажу может кому пригодиться.

    1.Начало скрипта "Дата сейчас".
    В самое начало скрипта ставим "Дата сейчас".

    2.Далее ваши действия парсинг,клики и т.д.

    3.Конец скрипта после всех действий ставим так же "Дата сейчас".Это значит мы получили конечную дату.

    4.Далее ставим "Разница между датами".

    5.Далее ставим переменную в значение пишем,в моём случае это будет 300-Разница между датами....и у нас путём математики получается в переменной секунды которые не дошли до 300.

    6.Далее ставим например "Эмуляция бездействия" и вставляем переменную "300-разница между датами".

    Логика такая:
    Получаем дату.
    Делаем всякие действия.
    Конец работы опять получаем дату.
    Далее получаем разницу между датами.
    Далее ставим переменную:в значение пишем ...300 минус разницу между датами.... и название например OSTATOK_SECUND
    Самый конец скрипта,ставим какие-нибудь действия которые считаются секундами например "Эмуляция бездействия" и в неё переменную переменную OSTATOK_SECUND.

    Теперь если скрипт закончит работу в 285 секунд,а вам надо чтобы он закончил работу в 300 секунд.То 300 минус разница между датами и получиться 15 секунд.Это остаток он будет ещё работать,потом уже перезапуститься.

    Кому это надо не знаю,ну например накрутка на сайт,много потоков где каждый выполняет свои действия и все действия у потоков разные и надо чтобы каждый поток заканчивал работу в своё время заданное.

    P.S.
    Если в конце нужно вам действие "Спать" то "Спать" исчисляется в миллисекундах.Просто делайте: 300 минус разница в датах и умножить на 1000.Только правильно наверное будет поставить скобки (300-разница в датах)умножить на 1000. 300-разница в датах*1000.

    Надеюсь хоть кому-то помог.

    Только есть условие,изначально вы должны знать хоть примерно сколько уходит секунд на всю работу скрипта.И рассчитывать примерно плюс минус 40 секунд в запасе.Рассчитывайте на вскидку примерно сколько загружается страница,включение прокси,перед и после них обязательно нужно ставить спать,иначе может не загрузиться страница и т.д. в общем где-то так.



  • Делаешь проверку, что номер потока равен 1,
    В if делаешь действие спать в 300 секунд, потом действие "Прервать скрипт"

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


Log in to reply
 

  • 2
  • 2
  • 2
  • 12
  • 6
  • 15
  • 7
  • 2