Как засунуть несколько разных ботов на сервер и запускать их при необходимости.
-
Доброго времени суток!
Очень благодарен разработчикам за такую крутую среду веб автоматизации!
Я пытаюсь сейчас научиться работать с базами данных MySQL с BAS.
Следующим шагом я хочу засунуть разных ботов на сервер и включать их при необходимости автоматически.
Какие можете посоветовать решения?Например я хочу управлять запуском ботов с веб ресурса.
Например нажимаю кнопку запустить. Запускается 1ый бот регистрируется на сайте, и все данные о регистрации записывает в базу данных. Далее бот выключается и включается другой бот, который считывает базу данных и начинает дальше свою работу.
Суть именно в том что я не представляю как можно запускать, процесс запуска бота. Смотрю в сторону PHP и какого то серверного решения запуска файлов BAS.
Не судите строго, если я тут слишком абстрактно описал задачу, я ещё только учусь)
-
Ну как вариант, боты 24/7 сканируют определенную вашу веб страницу, а при нажатии кнопок там появляется какой-то елемент.
Который нужный бот определяет для себя и начинает выполнять необходимые вам действия, как то так)
-
@sitiros
В начале скрипта делает бесконечный цикл на чек определенной строки базы, если она подходит - цикл прерывается и дальше идет тело скрипта (то что он должен делать).
В случае с регистрацией, в конце он записывает в базу данные и меняет еще одну строку, которая отвечает за следующий этап.
Параллельно другой скрипт мониторит в цикле эту строку, и как только она становится такой как нужно, прерывается цикл, и скрипт выполняется дальше по заданым действиям
-
Спасибо, идеи неплохие)
Просто я задумался о таком способе именно с целью максимально снизить нагрузку на сервер.
Ботов планирую делать больше 20 и с разным количеством потоков, которые так же будут регулироваться базой данных.
-
@sitiros Также можно запустить бота из командной строки, для этого его нужно скомпилировать и запустить с параметром --silent
RemoteExecuteScript.exe --silent
Это можно сделать в любое время через любой язык программирования или по расписанию.
Важно чтобы рабочая директория совпадала с той, где находится RemoteExecuteScript.exe
-
Окей, я понял, спасибо
-
@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Не пойму баг это или нет.
-
Важно чтобы рабочая директория совпадала с той, где находится RemoteExecuteScript.exe
-
@support said in Как засунуть несколько разных ботов на сервер и запускать их при необходимости.:
Важно чтобы рабочая директория совпадала с той, где находится RemoteExecuteScript.exe
Столкнулся с похожей проблемой. Подскажите что имеете ввиду под рабочей директорией? Я запускаю сразу с папки релиза, например D:\BAS\BrowserAutomationStudio\release\Test1\RemoteExecuteScript.exe --silent
И ничего не происходит. Где эта рабочая директория?
-
@Gang открой cmd, и вставь команду cd D:\BAS\BrowserAutomationStudio\release\Test1\ и жмешь enter, все ты в рабочей директории..после уже вводи RemoteExecuteScript.exe --silent
-
@santilo said in Как засунуть несколько разных ботов на сервер и запускать их при необходимости.:
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 это тихий режим)
Понял спасибо!!!