Задать вопрос

Python, что правильнее использовать, запуск бота на прямую или крон?

Python, как правильно запускать ботов, которые должны работать постоянно, делать задачу cron или просто запускать python3 ./main.py и делать в боте цикличность, перезапуск.

Мне тут человек сделал бота парсера, но запуск сделал через крон, а до этого мне ботов делали, запуск обычный, прописал python3 ./main.py, и бот работает, он в цикле, работает постоянно.

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

Так я ему говорю, что если запускать на прямую python3 ./main.py, что там делают, чтобы ресурсы освобождались при перезапуске, когда в цикличности.

Так как правильнее надо реализовывать.
Я что-то запутался.

Я вот нашел такое.


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

2. Второй способ, используя системный планировщик задач, более гибкий, поскольку вы можете настроить точное расписание выполнения. Он также экономит ресурсы системы, поскольку ваш бот будет запускаться только в указанное время. Этот способ подходит, если ваш бот должен работать по расписанию, выполнять задачи и завершаться.

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


Что выходит, если допустим мне бота запускать нужно постоянно, чтобы он всегда работал, запускаю я через вариант 1 или 2, то жрать ресурсы будет бот одинаково, как я понял.

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

Верно же я думаю и мыслю логически?
  • Вопрос задан
  • 198 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@q2digger
никого не трогаю, починяю примус
правильнее сервис systemd нарисовать
Ответ написан
Vindicar
@Vindicar
RTFM!
Ну если на то пошло, то systemd умеет делать задачи-таймеры по типу крона. Хотя крон, пожалуй, на большем числе систем из коробки есть.

Я бы сказал так. Если у тебя интервалы запуска более-менее статичные - используй systemd или cron.
А вот если у тебя время следующего запуска нужно вычислять согласно некоторой нетривиальной логике - тут уже лучше самому сделать планировщик.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы