#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