Heroku 上的 Scrapy
Scrapy on Heroku
我刚刚将托管在 heroku 上的工作 scrapy 应用程序升级到 Build Pack 20。我现在在我的日志中收到一个错误,该错误发生在我的抓取应用程序完成之前。
日志:
2021-08-25T14:15:49.867725+00:00 app[api]: Starting process with command `scrapy crawl main` by user lee@prevost.net
2021-08-25T14:15:57.812969+00:00 heroku[run.7197]: State changed from starting to up
2021-08-25T14:15:57.758336+00:00 heroku[run.7197]: Awaiting client
2021-08-25T14:15:57.776747+00:00 heroku[run.7197]: Starting process with command `scrapy crawl main`
2021-08-25T14:37:11.126653+00:00 heroku[run.7197]: Client connection closed. Sending SIGHUP to all processes
2021-08-25T14:37:11.650022+00:00 heroku[run.7197]: Process exited with status 129
2021-08-25T14:37:11.850624+00:00 heroku[run.7197]: State changed from up to complete
我相信我的问题可能与 Heroku 上的 Dyno 限制有关,该限制与附加的 dyno 限制有关,该限制会发出超时重置。我不确定这是否会重置 dyno 或只是 shell 终端。 https://devcenter.heroku.com/articles/limits#dynos
我是否需要更改代码中的某些内容以使用“保持活动”策略刷新超时计数器?
编辑:从 Heroku shell,我确实看到 spider 完美地工作了大约一个小时(抓取了几百个项目)然后 shell 会话结束了,没有任何通知或错误信息。所以,我假设这是 dyno 发送的“SIGHUP”中断?
我解决了我的问题。我将此传递给其他人 运行,因为这显然是一个“菜鸟”错误。
我试图使用允许来自浏览器的 bash 命令的 Web 控制台 运行 我的应用程序。这是右上角“更多”下拉菜单中的“运行 控制台”。
显然,SIGHUP 是从“运行 控制台 shell”发送的信号,该信号在一小时后超时。我的应用程序以退出代码 129 而不是预期的退出 0 退出。
如果我 运行 来自 CLI 的应用程序使用:
heroku run [my start command]
它 运行 一直到完成,我从 CLI 获得了完整的日志和标准输出。
我刚刚将托管在 heroku 上的工作 scrapy 应用程序升级到 Build Pack 20。我现在在我的日志中收到一个错误,该错误发生在我的抓取应用程序完成之前。
日志:
2021-08-25T14:15:49.867725+00:00 app[api]: Starting process with command `scrapy crawl main` by user lee@prevost.net
2021-08-25T14:15:57.812969+00:00 heroku[run.7197]: State changed from starting to up
2021-08-25T14:15:57.758336+00:00 heroku[run.7197]: Awaiting client
2021-08-25T14:15:57.776747+00:00 heroku[run.7197]: Starting process with command `scrapy crawl main`
2021-08-25T14:37:11.126653+00:00 heroku[run.7197]: Client connection closed. Sending SIGHUP to all processes
2021-08-25T14:37:11.650022+00:00 heroku[run.7197]: Process exited with status 129
2021-08-25T14:37:11.850624+00:00 heroku[run.7197]: State changed from up to complete
我相信我的问题可能与 Heroku 上的 Dyno 限制有关,该限制与附加的 dyno 限制有关,该限制会发出超时重置。我不确定这是否会重置 dyno 或只是 shell 终端。 https://devcenter.heroku.com/articles/limits#dynos
我是否需要更改代码中的某些内容以使用“保持活动”策略刷新超时计数器?
编辑:从 Heroku shell,我确实看到 spider 完美地工作了大约一个小时(抓取了几百个项目)然后 shell 会话结束了,没有任何通知或错误信息。所以,我假设这是 dyno 发送的“SIGHUP”中断?
我解决了我的问题。我将此传递给其他人 运行,因为这显然是一个“菜鸟”错误。
我试图使用允许来自浏览器的 bash 命令的 Web 控制台 运行 我的应用程序。这是右上角“更多”下拉菜单中的“运行 控制台”。
显然,SIGHUP 是从“运行 控制台 shell”发送的信号,该信号在一小时后超时。我的应用程序以退出代码 129 而不是预期的退出 0 退出。
如果我 运行 来自 CLI 的应用程序使用:
heroku run [my start command]
它 运行 一直到完成,我从 CLI 获得了完整的日志和标准输出。