Подтвердить что ты не робот

Как настроить APScheduler в проекте Django?

В частности, как

  • Настройка APScheduler в проекте Django
  • Начать запуск
  • Написать Django ORM
4b9b3361

Ответ 1

Хорошо, я поеду. Предполагая, что вы установили apscheduler (или поместили его в свой путь Python). базовая документация для APS содержит следующий код для запуска задания:

from apscheduler.scheduler import Scheduler

sched = Scheduler()

@sched.interval_schedule(hours=3)
def some_job():
    print "Decorated job"

sched.configure(options_from_ini_file)
sched.start()

Проблема, которую я подозреваю, заключается в том, как запустить запуск в Django. У вас есть несколько вариантов, в основном состоящих из "помещения его где-нибудь, когда он будет запущен". Например, добавьте его в конец файла models.py или в urls.py, и он будет обработан один раз при каждом перезапуске Django, а затем продолжит работу в фоновом режиме. Доступ к базе данных можно затем выполнить как обычно изнутри функции - просто импортируйте свои модели как обычно для своих запросов.

Однако учтите, что если вы сделаете это, вам понадобится убить и перезагрузить сервер в любое время, когда вы захотите изменить планирование. Я также не уверен, как это произойдет с несколькими потоками (у вас будет > 1 таймер?)

Вы действительно можете рассмотреть возможность перехода с помощью Celery (через django-celery), который дает вам все это, плюс отдельный демон scheduling с более точным контролем планирования.