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



  • Доброго времени суток!

    Очень благодарен разработчикам за такую крутую среду веб автоматизации!

    Я пытаюсь сейчас научиться работать с базами данных MySQL с BAS.
    Следующим шагом я хочу засунуть разных ботов на сервер и включать их при необходимости автоматически.
    Какие можете посоветовать решения?

    Например я хочу управлять запуском ботов с веб ресурса.
    Например нажимаю кнопку запустить. Запускается 1ый бот регистрируется на сайте, и все данные о регистрации записывает в базу данных. Далее бот выключается и включается другой бот, который считывает базу данных и начинает дальше свою работу.
    Суть именно в том что я не представляю как можно запускать, процесс запуска бота. Смотрю в сторону PHP и какого то серверного решения запуска файлов BAS.
    Не судите строго, если я тут слишком абстрактно описал задачу, я ещё только учусь)



  • Ну как вариант, боты 24/7 сканируют определенную вашу веб страницу, а при нажатии кнопок там появляется какой-то елемент.
    Который нужный бот определяет для себя и начинает выполнять необходимые вам действия, как то так)



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



  • Спасибо, идеи неплохие)
    Просто я задумался о таком способе именно с целью максимально снизить нагрузку на сервер.
    Ботов планирую делать больше 20 и с разным количеством потоков, которые так же будут регулироваться базой данных.



  • @sitiros Также можно запустить бота из командной строки, для этого его нужно скомпилировать и запустить с параметром --silent

    RemoteExecuteScript.exe --silent
    

    Это можно сделать в любое время через любой язык программирования или по расписанию.
    Важно чтобы рабочая директория совпадала с той, где находится RemoteExecuteScript.exe
    0_1486726498266_RemoteExecuteScript.png



  • Окей, я понял, спасибо



  • @sitiros У меня похожий функционал, я сделал так - делаю запрос к api своего бота на php, получаю в BAS JSON ответ, в котором указывается список заданий, каждое задание имеет свой список действий (сырой код, выполняющийся в eval), и время, в которое оно выполнится. Нулевой поток распределяет задания по другим свободным потокам через глобальную переменную, каждый поток информирует api о выполнении\невыполнении задания. Запросы главного потока к api идут примерно раз в 30 секунд. Через web интерфейс бота на главном сервере указываю задания. Можно запиливать один и тот же скрипт на разные сервера, указывая столько потоков, чтобы сервер выдержал. Свободные потоки ничего не делают, ожидая данных от главного потока.



  • @blackhacker круто мне как раз именно это нужно) сколько времени Вам понадобилось на отладку и поднятие такой системы?



  • @sitiros Недели две наверно) Чтобы все баги устранить, и разобраться в некоторых тонкостях. Правда, пока не знаю, каких ботов запускать) И такие скрипты не продать, если вдруг захочется. Но есть и свои плюсы, про которые написал



  • @support попробовал запустить через консоль не получается вот что пишет:
    http://clip2net.com/s/3HF9cyc

    вот что вводил в консоль:

    C:\Users\Артём\AppData\Roaming\BrowserAutomationStudio\release\test\RemoteExecuteScript.exe
    

    Так же пробовал открыть через php вот так:

    exec('c:\WINDOWS\system32\cmd.exe /c START Z:\home\test\RemoteExecuteScript.exe'); // файлы я тут в директорию локального сервера перенёс.
    

    Та же ошибка!

    Через планировщик задач, та же ошибка! Но, если в планировщике указать путь к рабочей директории, то всё работает!
    http://clip2net.com/s/3HF9yhE

    Не пойму баг это или нет.



  • @sitiros

    Важно чтобы рабочая директория совпадала с той, где находится RemoteExecuteScript.exe



  • @support said in Как засунуть несколько разных ботов на сервер и запускать их при необходимости.:

    @sitiros

    Важно чтобы рабочая директория совпадала с той, где находится RemoteExecuteScript.exe

    Столкнулся с похожей проблемой. Подскажите что имеете ввиду под рабочей директорией? Я запускаю сразу с папки релиза, например D:\BAS\BrowserAutomationStudio\release\Test1\RemoteExecuteScript.exe --silent

    И ничего не происходит. Где эта рабочая директория?



  • @Gang открой cmd, и вставь команду cd D:\BAS\BrowserAutomationStudio\release\Test1\ и жмешь enter, все ты в рабочей директории..после уже вводи RemoteExecuteScript.exe --silent





  • @Gang вот так попробуй cd /D D:\BAS\BrowserAutomationStudio\release\Test1\ , и все сработает



  • @santilo said in Как засунуть несколько разных ботов на сервер и запускать их при необходимости.:

    @Gang вот так попробуй cd /D D:\BAS\BrowserAutomationStudio\release\Test1\ , и все сработает

    Да так работает, спасибо огромное! Еще подскажите почему прога сразу же как отработала закрывается автоматически?



  • @Gang так задумано) --silent это тихий режим)



  • @santilo said in Как засунуть несколько разных ботов на сервер и запускать их при необходимости.:

    @Gang так задумано) --silent это тихий режим)

    Понял спасибо!!!


Log in to reply
 

  • 6
  • 3
  • 26
  • 14
  • 7
  • 4
  • 6
  • 2