我有一个python脚本,我想自动运行一周。它从私有空间中的Heroku数据库访问数据,所以我想构建一个Heroku应用程序然后使用Heroku Scheduler附加组件将满足我的需求。无论如何,我需要运行一个Heroku dyno来访问数据 - 否则我不能。
然而,查看App日志(使用Papertrail)我注意到即使成功迭代(Process exited with status 0
)之后应用程序仍继续重复运行python脚本。我不希望这种情况发生,因为它可能会给数据库带来不必要的压力。
有没有办法在Heroku上运行脚本/应用程序然后实际关闭它直到下次明确调用它?
答案 0 :(得分:0)
调度程序可能是执行此操作的最佳方式,调度程序将配置的任务作为一个关闭进程运行,并在完成时终止该进程。但是,如果您只希望每周运行一次,则需要在脚本中执行一些逻辑,以检查当天是否是您希望运行作业的那一天,如果是,请继续完成。
答案 1 :(得分:0)
解决方案是从worker
中删除运行我的脚本的(Procfile
)命令,然后将调度程序设置为described here by Heroku.
如果命令在Procfile
中,则无论成功状态如何,它都将继续执行。