[英]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.