首页 > 解决方案 > 使用 Google Cloud 执行长时间运行的任务

问题描述

我已经使用 Google CLoud 几个星期了,由于我有限的 GCP 知识,我面临着一个大问题。

我有一个 python 项目,其目标是使用它的 API 从网站“抓取”数据。我的项目在执行期间运行了数万个请求,并且可能需要很长时间(几个小时,也许更多)

我的项目中有 4 个 python 脚本,它们都是由 bash 脚本编排的

执行如下:

现在我想使用那个 bash 脚本,我想自动执行这些脚本。每星期一次。

这里的问题是执行时间。这是我已经测试过的:

Google App Engine : GAE 上的请求超时限制为 10 分钟,我的函数可以运行几个小时。GAE 在这里不可用。

谷歌计算引擎:我的脚本将运行最大。每周 10 到 15 个小时,在这段时间内保持计算引擎的运行成本太高了。

我可以做些什么来在云环境中自动执行我的脚本?在不更改代码的情况下,我没有想到的解决方案是什么?

谢谢

标签: pythongoogle-app-enginegoogle-cloud-platformgoogle-compute-enginegoogle-cloud-run

解决方案


无需摆脱现有的编排所有内容的 bash 脚本即可完成此操作的简单方法是:

  1. 在实例的启动脚本中包含 bash 脚本。
  2. 在 bash 脚本的末尾,包含一个shutdown命令。
  3. 使用Cloud Scheduler 安排实例的启动。您必须对 GCE API 进行经过身份验证的调用才能启动现有实例

这样,您的实例将按计划启动,它将运行启动脚本(这将是您现有的编排脚本),并在完成后关闭。


推荐阅读