Как перезапускать скрипт автоматически?

Поддержка
  • @stamp said in Как перезапускать скрипт автоматически?:

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

    Перезапуск скрипта в автоматическом режиме средствами BAS это конечная задача, а не изначальная. Объясните зачем вам это необходимо

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

  • @fox при работе скрипта появляются некоторые ошибки , некоторые из них тормозят поток , и он выпадает из работы что не есть хорошо , ошибки отловить не получается так как нужно длительное время сидеть следить .

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

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

    это можно сделать при помощи ресурса строка , но это не вариант , данные время от времени меняются и это будет очень неудобно.

  • @stamp said in Как перезапускать скрипт автоматически?:

    @fox при работе скрипта появляются некоторые ошибки , некоторые из них тормозят поток , и он выпадает из работы что не есть хорошо , ошибки отловить не получается так как нужно длительное время сидеть следить .

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

    это можно сделать при помощи ресурса строка , но это не вариант , данные время от времени меняются и это будет очень неудобно.

    Используйте опцию "жадный алгоритм" в свойстве ресурса. Тогда поток после перезапуска возьмёт эту же строку.

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

    Вы бы скинули скриншот настроек ресурса

  • жадный алгоритм пробовал , тогда 3 поток берет первую строку ,
    и разобрался почему раньше при запуске не брало строки, успешных использований стояло 1)

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

    я думал над реализацией такой , спарсить из файла 4 строки как нибудь по номеру , и записать их в переменные , потом каждому потоку свою переменную
    ноэто надо будет для 3 файлов делать

    настройки ресурса
    http://prntscr.com/ndkl8j
    http://prntscr.com/ndklny

  • @stamp said in Как перезапускать скрипт автоматически?:

    жадный алгоритм пробовал , тогда 3 поток берет первую строку ,
    и разобрался почему раньше при запуске не брало строки, успешных использований стояло 1)

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

    я думал над реализацией такой , спарсить из файла 4 строки как нибудь по номеру , и записать их в переменные , потом каждому потоку свою переменную
    ноэто надо будет для 3 файлов делать

    настройки ресурса
    http://prntscr.com/ndkl8j
    http://prntscr.com/ndklny

    Ошибочных использований сделай тоже 9999 (иначе поток после неудачного завершения возьмёт не эту, а следующую строку), а чтобы каждый поток брал по очереди ресурс, используй действие "Спать", в нём номер потока умнож на 1000

    0_1555577231490_6042364c-e4b8-410a-8672-3881df9c8e72-изображение.png

  • так каждый поток изначально и берет по очереди строку , но в процессе работы они перезапускаются не по порядку , может перезапуститься сначала 4 потом 2 , в таком случае 4 поток берет 1 строку , и это ломает всю систему)
    я все больше склоняюсь к варианту назначить каждому потоку свою строку , но хз как это сделать если ресурс файл

  • @stamp said in Как перезапускать скрипт автоматически?:

    так каждый поток изначально и берет по очереди строку , но в процессе работы они перезапускаются не по порядку , может перезапуститься сначала 4 потом 2 , в таком случае 4 поток берет 1 строку , и это ломает всю систему)
    я все больше склоняюсь к варианту назначить каждому потоку свою строку , но хз как это сделать если ресурс файл

    Можно реализовать через метод RMap()

    RMap("res").at([[THREAD_INDEX]]-1)
    

    0_1555674122950_22767a48-ee55-4cfd-83e4-01f6c810b344-изображение.png
    в цикле стоит случайный сон от 1 до 3 секунд, так же стоит условие срабатывающее в 30% случаев вызывая случайный перезапуск.

    В режиме "запуска" видно, что каждый поток берёт только свою строку в 100% случаев:
    0_1555674374439_c03c9ee4-68b5-4677-83ac-0cda2808f8b0-изображение.png

    Файл ресурса

    Тестовый скрипт

  • @fox а если через "Повторное использование"? По идее каждый поток должен использовать одну и ту же строку, которую он взял первый раз. Или есть ньюансы?

  • 0 Votes
    3 Posts
    669 Views
  • 0 Votes
    4 Posts
    959 Views
  • 0 Votes
    2 Posts
    1129 Views
  • 0 Votes
    15 Posts
    2469 Views
  • 0 Votes
    5 Posts
    2983 Views