#python #django #heroku #django-rest-framework #scheduled-tasks
#python #django #heroku #django-rest-framework #запланированные задачи
Вопрос:
Я хочу запускать определенный скрипт каждый день по утрам для моего rest api, развернутого на heroku. сам скрипт — это всего лишь заполнитель базы данных. как это можно сделать? Я забыл упомянуть, что я использую django rest_framework
Комментарии:
1. посмотрите вверх
cron
. Это тоже может быть полезно.2. Я думаю, вам следует изучить ритм сельдерея. Хорошо интегрируется с Django
Ответ №1:
Существует довольно много вариантов. Вот что я делаю с недавно созданным мной приложением, которое регулярно очищает несколько новостных сайтов.
В корне моего проекта я создал clock.py
, а затем использовал apscheduler
для создания запланированного задания. Вот простая версия:
from apscheduler.schedulers.blocking import Blocking Scheduler
#IMPORTANT! Have to make sure things are working before this starts
from django import setup
setup()
sched = BlockingScheduler()
@sched.scheduled_job('interval', days=1):
def timed_job():
#do something here
...
Я развернул свой проект на Heroku, поэтому затем я прошел процесс запуска машины для запуска моего clock.py
файла. Как только он был запущен и запущен, процесс выполнялся как задумано.
Помимо этого interval
, вы можете использовать несколько параметров, чтобы указать, когда вы хотите запустить процесс. Вы можете использовать chron
планирование стилей, если хотите, чтобы оно выполнялось в определенное время и даты. Подробнее об этом можно прочитать здесь