Как установить scheduled в Django?

#python #django

#python #django

Вопрос:

Я работаю над веб-приложением с использованием Django, как запустить планировщик peroidically

По сути, я просто хочу просмотреть базу данных и выполнить некоторые вычисления / обновления автоматически, регулярно, но, похоже, я не могу найти никакой документации по этому вопросу.

Как установить или настроить его?

Для уточнения: я знаю, что могу настроить задание cron для этого, но мне любопытно, есть ли в Django какая-либо функция, обеспечивающая эту функциональность. Я бы хотел, чтобы люди могли самостоятельно развертывать это приложение без необходимости выполнять много настроек (предпочтительно нулевых).

Я рассматривал возможность запуска этих действий «задним числом», просто проверяя, должно ли было выполняться задание с момента последней отправки запроса на сайт, но я надеюсь на что-то немного более чистое.

Комментарии:

1. Вы пробовали Django-scheduler ?

2. Я предлагаю использовать сельдерей docs.celeryproject.org/en/latest/django /…

Ответ №1:

сначала установите apscheduler:

 pip install apscheduler
  

создайте файл schedule.py в каталоге вашего приложения.
затем добавьте этот код в:

 from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from any_file import function #import the function that you want

def start():
    scheduler = BackgroundScheduler()
    scheduler.add_job(your_function, 'interval', minutes=5) #every five minute for example
    scheduler.start()
  

добавить это в apps.py :

 from django.apps import AppConfig

class AppConfig(AppConfig):
    name = 'app' #your app name

    def ready(self):
        from your_app import schedule
        schedule.start()
  

затем обновите ваши INSTALLED_APPS в settings.py.добавьте это к нему:

 'yourApp.apps.AppConfig' #import class in apps.py