如何运行Heroku Dyno然后在运行一次后关闭

时间:2017-05-22 21:32:14

标签: python heroku scheduler

我有一个python脚本,我想自动运行一周。它从私有空间中的Heroku数据库访问数据,所以我想构建一个Heroku应用程序然后使用Heroku Scheduler附加组件将满足我的需求。无论如何,我需要运行一个Heroku dyno来访问数据 - 否则我不能。

然而,查看App日志(使用Papertrail)我注意到即使成功迭代(Process exited with status 0)之后应用程序仍继续重复运行python脚本。我希望这种情况发生,因为它可能会给数据库带来不必要的压力。

有没有办法在Heroku上运行脚本/应用程序然后实际关闭它直到下次明确调用它?

2 个答案:

答案 0 :(得分:0)

调度程序可能是执行此操作的最佳方式,调度程序将配置的任务作为一个关闭进程运行,并在完成时终止该进程。但是,如果您只希望每周运行一次,则需要在脚本中执行一些逻辑,以检查当天是否是您希望运行作业的那一天,如果是,请继续完成。

答案 1 :(得分:0)

解决方案是从worker 中删除运行我的脚本的(Procfile)命令,然后将调度程序设置为described here by Heroku.

如果命令在Procfile中,则无论成功状态如何,它都将继续执行。