如何解决使用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脚本,它可以协调所有事情:
- 在https://docs.python.org/3/howto/logging.html上包括bash脚本。
- 在bash脚本的末尾,包含一个
shutdown
命令。 - 使用startup script for the instance安排实例的启动。您必须对Cloud Scheduler的GCE API进行经过身份验证的调用。
这样,您的实例将按计划启动,它将运行启动脚本(将是您现有的编排脚本),并在完成后将其关闭。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。