веб-приложение uwsgi с задачами cron?

Я написал приложение, используя webpy (webpy.org). Частью этого веб-приложения являются повторяющиеся фоновые задачи для статистических функций. Я использовал библиотеку APScheduler python для выполнения расписаний в стиле cron. Потому что app.run() позволяет webpy работать в автономном режиме во время разработки. Эта установка сработала нормально.

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

Мой вопрос: как мне запланировать задачи в стиле cron при развертывании веб-приложения uwsgi. Я видел, что у самого uwsgi есть поддержка cron. Но мне интересно, как я могу смешать его с моим приложением, таким как APScheduler (или заменить его)? Задачи зависят от нескольких модулей и динамических свойств приложения, поэтому их нельзя легко преобразовать в автономные программы .py.


person He Shiming    schedule 21.03.2012    source источник


Ответы (1)


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

person roberto    schedule 21.03.2012