Форум сайта python.su
0
Доброго времени суток! Решил написать на Python программу, которая работает по клиент-серверному принципу. На сервере запускается приложение, которое выполняем функцию “бэкапера” (архивирует в заданное время указанные файлы, подсчитывает контрольные суммы, выполняет очистку сервера от старых архивов и прочее). Со стороны клиента доступна веб-морда по управлению этой утилитой. Такой формат выбран в связи с тем, что сервер, на котором необходимо запустить приложение, периодически бывает занят коллегами по работе, а проверить работу программы необходимо (проверить статистику, сделать архивы вручную, добавить\удалить папку для ведения архивов).
Для серверной стороны выбрал Bottle. Для веб-морды юзаю framework kube. И всё бы ничего, но когда добрался до планировщика встал в тупик. Само приложение при запуске формирует бесконечный цикл опроса порта, чтобы принимать входящие соединения (использовал встроенный сервер bottle, поскольку это практически разовые запросы и его мощности вполне бы хватило). А мне необходимо чтобы в определённый момент отрабатывали нужные функции, т.е. нужен встроенный планировщик, который следит за временем. Итого имеем два бесконечных цикла. А приложение однопоточное. В силу своей неопытности пока плохо разбираюсь в многопоточных приложениях и не знаю с какой стороны подступиться к этому вопросу.
Вопросы примерно следующие:
Офлайн
в tornado есть ioloop и scheduler
https://toster.ru/q/182515
тока зачем делать бэкап на питоне? написать shell-скрипт и запустить в фоне
Отредактировано vic57 (Июль 14, 2017 14:32:28)
Офлайн
0
На шеле даже можно свой сервак запустить и реализовать мою задумку. В данном случае меня больше интересует питон именно как способ повысить свой скилл. Спасибо за ссылку, полезная инфа.
Офлайн
0
Всё оказалось чуть проще, чем думал. Можно просто распаралелить процессы веб-сервера и планировщика через модуль thread. Спасибо Лутцу 
Офлайн