如前所述 此处,快速简单的回答这个问题的方法是问自己,你会怎么做才能周期性地运行那个脚本,就像你自己是调度员一样。
现在,最好的方法是在你的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_appmanagementcommandssome_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()
然后上Heroku > your_app > resources
在附加组件部分选择 Heroku Scheduler
点击它,使其窗口打开,然后点击添加作业,选择你想要的时间,插入命令 python manage.py some_custom_command
并保存。