Как установить запланированное в Django? - PullRequest
0 голосов
/ 06 апреля 2019

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

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

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

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

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

1 Ответ

1 голос
/ 06 апреля 2019

при первой установке 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...