Запуск BAS по расписанию: автозапуск, планировщик и работа без человека
Как запускать бота Browser Automation Studio по расписанию: планировщик Windows, автозапуск при старте системы, работа на VPS, перезапуск после сбоя и контроль того, что бот действительно отработал.
Все статьи гида Browser Automation Studio · 48
Бот, который нужно запускать руками, автоматизирует только часть работы. Настоящая автономность начинается там, где он стартует сам, отрабатывает и сообщает результат - а вы узнаёте о нём, только когда что-то пошло не так.
Расписание живёт снаружи
Главное решение принимается до всякой настройки: расписание - это не задача бота. Правильная схема - бот умеет отработать один прогон и корректно завершиться, а когда именно его запускать, решает система снаружи.
Соблазн сделать иначе понятен: добавить в скрипт бесконечный цикл с паузой в час и оставить висеть. Так делать не стоит. Вечно живущий процесс накапливает утечки памяти, зависшие вкладки и мусорное состояние; после суток работы он ведёт себя не так, как в первый час. Процесс, который стартует, делает работу и умирает, каждый раз начинает с чистого листа.
Отсюда практический вывод: скомпилируйте проект в приложение и запускайте его как обычную программу.
Планировщик задач Windows
Штатный способ. Создаёте задачу, указываете путь к собранному .exe и расписание. Несколько настроек, которые обычно и определяют, взлетит схема или нет:
- «Выполнять вне зависимости от регистрации пользователя» - иначе задача не запустится, пока вы не войдёте в систему.
- Рабочая папка. Если не задать, приложение стартует не из своей директории и не найдёт ресурсы, которые лежат рядом. Это причина №1, по которой бот «работает руками, но не работает по расписанию».
- Что делать, если предыдущий запуск ещё идёт. По умолчанию можно получить два экземпляра разом. Для бота с потоками это удвоенная нагрузка и, скорее всего, гонка за одни и те же данные.
- Запуск при пропущенном времени - если машина спала в назначенный час.
Автозапуск при старте системы
Если бот должен работать постоянно, а не по часам, разумнее вешать его на старт системы: VPS перезагрузился после обновления - бот поднялся сам, без вашего участия.
Здесь есть неочевидная ловушка: при старте системы сеть может быть ещё не готова, и бот падает на первом же обращении к сайту. Лечится задержкой запуска в пару минут или проверкой связи в начале скрипта.
VPS: где это должно жить
Домашний компьютер плох для автоматизации по расписанию не из-за мощности, а из-за непредсказуемости: спящий режим, обновления Windows, пропавший интернет, случайно выключенная машина.
Практические требования к VPS под BAS скромные и определяются в основном памятью: считайте по 150-400 МБ на браузерный поток плюс запас системе. Отдельный момент - не работайте на VPS через постоянно открытый RDP: сессия остаётся активной, потребляет ресурсы, а при обрыве соединения может утащить за собой процессы. Запустили задачу, отключились, зашли проверить результат.
Перезапуск после падения
Даже надёжный бот однажды упадёт: сайт лёг, кончилась память, оборвалась сеть. Вопрос не в том, случится ли это, а в том, восстановится ли он без вас.
Планировщик здесь помогает больше, чем кажется: если расписание частое, следующий запуск и есть механизм восстановления. Достаточно, чтобы бот при старте умел разобраться с последствиями прошлого падения - не обработать повторно то, что уже сделано, и подчистить зависшие процессы браузера. Логика «продолжить с того места, где остановились» ценнее, чем логика «начать всё заново», особенно на длинных списках.
Как узнать, что бот отработал
Самое опасное состояние автономного бота - тихий отказ. Он не падает с ошибкой, он просто перестаёт делать полезное: расписание срабатывает, процесс стартует, ноль результата, никто не в курсе.
Поэтому каждый автономный прогон должен оставлять след:
- Уведомление о результате. Короткий итог в Telegram после каждого прогона - обработано столько-то, ошибок столько-то.
- Сигнал о самом факте запуска. Важнее, чем кажется: отсутствие сообщения - это тоже информация. Если вечернего отчёта нет, значит задача не стартовала вовсе.
- Статистика по прогонам. Не только «сколько сделал», но и «сколько обычно делает». Прогон, который отработал вдвое быстрее обычного, чаще всего означает не ускорение, а пустой список на входе.
- Лог в файл. Разбирать вчерашний сбой можно только по логам, написанным вчера.
Ориентир простой: если бот молчит трое суток, вы должны об этом узнать - от него самого или от их отсутствия.
Вопросы и ответы
Как запускать BAS-бота по расписанию?
Скомпилируйте проект в приложение и запускайте его планировщиком задач Windows как обычную программу. Сам BAS встроенного планировщика не заменяет: правильная схема - снаружи расписание, внутри бота логика одного прогона с корректным завершением.
Что нужно, чтобы бот работал круглосуточно без меня?
Три вещи: машина, которая не выключается (обычно VPS с Windows), запуск через планировщик или автозагрузку, и внешний контроль результата - уведомление или отчёт после каждого прогона. Без третьего пункта вы не отличите «бот отработал» от «бот молча упал неделю назад».
Ещё по теме
- Browser Automation Studio: полный практический гидГид
- Создаём первого бота в Browser Automation StudioПошаговый разбор создания первого рабочего бота в BAS - от пустого проекта до процесса, который ходит по страницам, извлекает данные и работает в несколько потоков.
- Настройка прокси в Browser Automation StudioКак правильно настроить прокси в BAS - типы прокси, привязка по потокам, ротация и проверки, которые не дают мультиаккаунт-ботам попасть под бан.
- Поиск элементов в BAS: селекторы, которые не ломаютсяКак работает поиск элементов в Browser Automation Studio - CSS против XPath, почему записанные селекторы ломаются и как писать селекторы, переживающие изменения страницы.
Сделаю под ключ
Не хотите собирать сами? Соберу бота на BAS под вашу задачу
Многопоточность, прокси, антидетект-профили и запуск по расписанию. Весь проект и доступы остаются у вас.
от 300 $ · 3-7 дней
«Павел крутой специалист выполнил парсер за несколько часов. Буду заказывать у Павла еще и еще! Спасибо ему огромное за его профессионализм и оперативность!»