繁体   English   中英

如何让 Django 应用程序在 Heroku 上运行,使用 Heroku Scheduler 执行预定作业

[英]How to have a Django app running on Heroku doing a scheduled job using Heroku Scheduler

我正在开发一个运行在 Heroku 上的 Django 应用程序。

为了用来自某个 API 服务的一些数据更新我的数据库,我需要定期运行某个脚本(比如myscript )。

我如何使用Heroku Scheduler来做到这一点?

正如此处已经解释的那样,回答这个问题的快速而简单的方法是问自己如何定期运行该脚本,就好像您自己就是调度程序一样。

现在,随时在 Django 应用程序中运行脚本的最佳方式是创建自定义管理命令,并在需要时从命令提示符运行它,如下所示:

python manage.py some_custom_command

然后,如果您是调度员,您将在调度中写入的每个时间从命令提示符运行该命令。

因此,一个好主意是让 Heroku Scheduler 的行为相同。 因此,这里的目标是让 Heroku Scheduler 在预定时间运行python manage.py some_custom_command

以下是您的操作方法:

your_app目录中,创建一个文件夹management ,然后在其中创建另一个文件夹commands ,最后在其中创建一个文件some_custom_command.py

所以,只是为了清楚

your_app/management/commands/some_custom_command.py

然后,在some_custom_command.py插入:

from django.core.management.base import BaseCommand
from your_app.path_to_myscript_file import myscript

class Command(BaseCommand):
    def handle(self, *args, **options):

        # Put here some script to get the data from api service and store it into your models.
        myscript()

然后 go 在 Heroku > your_app > resources

在加载项部分 select Heroku Scheduler中,单击它以打开其 window,然后单击添加作业,select 您需要的时间,插入命令python manage.py some_custom_command并保存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM