首页 > 解决方案 > 每天在 heroku 上的 django-rest api 中运行一个脚本

问题描述

我想每天早上运行一个特定的脚本,以便我在 heroku 上部署的 rest api 脚本本身它只是一个数据库填充器。那怎么办?我忘了提到我正在使用 django rest_framework

标签: pythondjangoherokudjango-rest-frameworkscheduled-tasks

解决方案


有很多选择。这是我在最近构建的一个应用程序上所做的,该应用程序定期抓取许多新闻网站。

在我的项目的根目录中,我创建了一个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如果您希望它在特定时间和日期运行,您可以使用样式调度。您可以在此处阅读更多相关信息


推荐阅读