使用 Google 云执行非常长 运行 的任务
Execute very long-running tasks using Google Cloud
我已经使用 Google CLoud 几个星期了,由于我有限的 GCP 知识,我面临着一个大问题。
我有一个 python 项目,其目标是使用 API 从网站“抓取”数据。我的项目 运行 在执行过程中有几万个请求,这可能需要很长时间(几个小时,也许更多)
我的项目中有 4 个 python 脚本,它们都是由 bash 脚本.
编排的
执行如下:
- 第一个脚本检查包含请求的所有指令的 CSV 文件,并执行请求,将请求的所有结果保存在 CSV 文件中
- 第二个脚本检查之前创建的 CSV 文件并重新创建另一个 CSV 指令文件
- 第一个脚本 运行 再次使用新指令并再次将结果保存在 CSV 文件中
- 第二个脚本再次检查并再次执行相同的操作...
- ...等等几次
- 第三个脚本清理数据,删除重复项并创建一个唯一的 CSV 文件
- 第四个脚本将最终的 CSV 文件上传到存储桶
现在我想使用那个 bash 脚本,我想自动执行大约 thos 脚本。每周一次。
这里的问题是执行时间。这是我已经测试过的:
Google App Engine:GAE 上请求的超时限制为 10 分钟,而我的函数可以 运行 几个小时。 GAE 在这里不可用。
Google Compute Engine :我的脚本最多 运行。每周 10-15 小时,在所有时间里保持计算引擎的运行成本太高了。
如何在云环境中自动执行我的脚本?在不更改我的代码的情况下,有哪些我没有想到的解决方案?
谢谢
实现此目的的一种简单方法,无需摆脱现有的 bash 编排一切的脚本:
- 在 startup script for the instance 中包含 bash 脚本。
- 在 bash 脚本的末尾,包含一个
shutdown
命令。
- 使用 Cloud Scheduler. You'll have to make an authenticated call to the GCE API to start the existing instance.
安排实例的启动
这样,您的实例将按计划启动,它将 运行 启动脚本(即您现有的编排脚本),并在完成后关闭。
我已经使用 Google CLoud 几个星期了,由于我有限的 GCP 知识,我面临着一个大问题。
我有一个 python 项目,其目标是使用 API 从网站“抓取”数据。我的项目 运行 在执行过程中有几万个请求,这可能需要很长时间(几个小时,也许更多)
我的项目中有 4 个 python 脚本,它们都是由 bash 脚本.
编排的执行如下:
- 第一个脚本检查包含请求的所有指令的 CSV 文件,并执行请求,将请求的所有结果保存在 CSV 文件中
- 第二个脚本检查之前创建的 CSV 文件并重新创建另一个 CSV 指令文件
- 第一个脚本 运行 再次使用新指令并再次将结果保存在 CSV 文件中
- 第二个脚本再次检查并再次执行相同的操作...
- ...等等几次
- 第三个脚本清理数据,删除重复项并创建一个唯一的 CSV 文件
- 第四个脚本将最终的 CSV 文件上传到存储桶
现在我想使用那个 bash 脚本,我想自动执行大约 thos 脚本。每周一次。
这里的问题是执行时间。这是我已经测试过的:
Google App Engine:GAE 上请求的超时限制为 10 分钟,而我的函数可以 运行 几个小时。 GAE 在这里不可用。
Google Compute Engine :我的脚本最多 运行。每周 10-15 小时,在所有时间里保持计算引擎的运行成本太高了。
如何在云环境中自动执行我的脚本?在不更改我的代码的情况下,有哪些我没有想到的解决方案?
谢谢
实现此目的的一种简单方法,无需摆脱现有的 bash 编排一切的脚本:
- 在 startup script for the instance 中包含 bash 脚本。
- 在 bash 脚本的末尾,包含一个
shutdown
命令。 - 使用 Cloud Scheduler. You'll have to make an authenticated call to the GCE API to start the existing instance. 安排实例的启动
这样,您的实例将按计划启动,它将 运行 启动脚本(即您现有的编排脚本),并在完成后关闭。