【发布时间】:2016-04-23 20:28:49
【问题描述】:
我有一个在 Heroku 上运行的爬虫刮板。我想在刮板完成后立即重新启动它。实现这一目标的最佳方法是什么?
- 显而易见的解决方案是杀死或重新启动该测功机,然后 Heroku 将通过 procfile 重新运行刮板。但是,目前尚不清楚执行此操作的最佳方法是什么。
相关:Heroku 是否会自动检测到您的进程已停止运行并自动为您关闭测功机?还是测功机只是坐在那里无所事事?
相关#2:你能否在爬虫退出之前从你的爬虫中调用一个 python 脚本/程序,然后该脚本可以等待 5 秒然后执行
scrapy runspider myspider
这行得通吗?大概是试图执行
scrapy runspider myspider
从内蜘蛛本身会导致宇宙内爆或其他什么(可能是扭曲的错误)?
【问题讨论】:
-
回答我自己的问题:>“想在爬虫完成后立即重新启动。实现此目的的最佳方法是什么?” ----- 最好的方法是创建一个带有while循环的“主”脚本,它使用
subprocess.call重复调用scrapy的实例。 Heroku procfile 运行主脚本。但是,最初的问题仍未得到解答:如何在 heroku 中从自身内部杀死 dyno?
标签: heroku