веб-приложение uwsgi с задачами cron? - PullRequest
3 голосов
/ 21 марта 2012

Я написал приложение, используя 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.

1 Ответ

5 голосов
/ 21 марта 2012

Если для ApsScheduler требуются потоки, вы должны включить их с помощью --enable-threads в uWSGI

...