mr-ZA
@mr-ZA

Программа в фоне на Python?

Всех приветствую, я не специалист пока, язык данный изучаю в практике, прошу помощи. Есть ли способ сделать программу на Python выполняющуюся в фоне (не одноразовой). К примеру необходимо чтобы программа висела в фоновом процессе и выполняла свое тело раз в 5 минут. Как это реализовать?
  • Вопрос задан
  • 946 просмотров
Решения вопроса 1
Вы можете написать на Python службу Windows. Поищите наиболее понятную вам статью. Вот, например https://www.thepythoncorner.com/2018/08/how-to-cre...

Выполнять задачу по расписанию можно с помощью библиотеки sched
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Добавьте в crontab выполнение вашего скрипта раз в 5 минут
Ответ написан
neatsoft
@neatsoft
Life is too short for bad software
Для таких задач есть специальный инструмент - Celery.

Под windows запустить можно, но не нужно. Если нет возможности использовать Linux в качестве основной рабочей системы, то стоит хотя бы виртуальную машину создать, т.к. паритет разработки/работы приложения - это важно.

upd. Почему Celery лучше чем планировщик? Фоновое выполнение - это не такая тривиальная задача, как может показаться на первый взгляд, т.к. существуют граничные условия:
- Что необходимо делать, если процесс по каким-то причинам не был запущен по расписанию, или завершился аварийно? Нужно ли запускать его повторно? (at least once)
- Важна ли очередность выполнения?
- Можно ли параллельно запускать ещё одну задачу, если предыдущая не завершилась?
- Как мониторить выполнение фоновых задач?
- Как собирать и хранить логи?
Celery - хорошо протестированный, используемый во множестве проектов, production ready инструмент. Единожды изучив, его можно использовать для задач любой сложности.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы