Heroku:如何以编程方式重新启动或关闭在该dyno上运行的应用程序的dyno

时间:2016-01-18 15:41:48

标签: heroku

我在Heroku上运行了一个scrapy scraper。我想在完成后立即重启刮刀。实现这一目标的最佳方法是什么?

  • 显而易见的解决方案是杀死或重启该dyno,然后Heroku将通过procfile重新运行刮刀。但是,目前尚不清楚最好的方法是什么。

相关:Heroku会自动检测到您的进程已停止运行并自动关闭dyno吗?或者dyno只是坐在那里什么都不做?

相关#2:你可以在它退出之前从你的刮刀中调用python脚本/程序,然后该脚本可以等待5秒然后执行

scrapy runspider myspider

那会有用吗?大概是试图执行

scrapy runspider myspider

来自 蜘蛛本身会导致宇宙内爆或某事(可能是扭曲的错误)?

1 个答案:

答案 0 :(得分:0)

以下代码重复运行一个蜘蛛,在完成后使用subprocess重新运行它。假设此代码位于名为myScript.py

的文件中
import subprocess

while True:

   subprocess.call(["scrapy", "runspider", "myspider.py"])

procfile应引用该脚本而不是实际的scraper,如下所示:

myHerokuScrapingProcess: python myScript.py

我仍然不知道如何重新启动实际的dyno。

相关问题