Запуск скрипта каждый день в django-rest api на heroku

#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 планирование стилей, если хотите, чтобы оно выполнялось в определенное время и даты. Подробнее об этом можно прочитать здесь