Я написал приложение, используя webpy (webpy.org). Частью этого веб-приложения являются повторяющиеся фоновые задачи для статистических функций. Я использовал APScheduler
библиотеку Python для выполнения расписаний в стиле cron. Потому что app.run()
позволяет webpy работать в автономном режиме во время разработки. Эта установка сработала нормально.
Однако, когда он был развернут, я обнаружил, что APScheduler больше не работает. Процедура развертывания в значительной степени соответствует этой статье . Моя программа входа все еще печатает успешные журналы планирования. Но похоже, что uwsgi приостановит работающее приложение webpy (приостановив поток), когда не будет получено ни одного запроса. Если я обновлю страницу, APScheduler включится, напечатав несколько WARNING:apscheduler.scheduler:Run time of job "worker (trigger: cron[...], next run at: ..)" was missed by 0:04:36.389705
сообщений. Они не работают по расписанию.
У меня вопрос, как мне планировать задачи в стиле cron при развертывании приложения uwsgi webpy. Я видел, что у uwsgi есть поддержка cron. Но мне интересно, как я могу смешать его с моим приложением, как APScheduler (или заменить его)? Задачи зависят от нескольких модулей и динамических свойств приложения, поэтому их нелегко преобразовать в отдельные программы .py.