如何将CPU重型任务从Google App Engine推向Google Compute Engine VM实例?

时间:2017-06-13 17:09:30

标签: google-app-engine cloud google-cloud-platform google-compute-engine

我想要使用Google App Engine和Google Compute Engine以下列方式执行CPU繁重的模拟任务:

  1. 模拟任务数据通过Google App Engine提交,例如:通过 执行API调用/运行模拟?param1 = ... param2 = ...
  2. 在GAE servlet内部,建立模拟任务并确定其计算要求,即需要什么类型的计算引擎机器
  3. GAE servlet启动所需的VM实例
  4. GAE servlet以某种方式将模拟任务传输到VM 处理它的实例
  5. 当VM实例完成时,会通知GAE servlet。理想情况下,它还可以在模拟过程中接收进度更新并将其显示给用户。
  6. 最后,GAE servlet从VM实例接收模拟结果并将其交给用户。随后关闭VM实例。
  7. 我遇到了4和5的困难。如何设法将计算任务从GAE servlet“推送”到Compute Engine VM实例?以后GAE和VM实例如何通信?

    (虽然我对GAE很有经验,但我完全不熟悉计算引擎,并且完全把握计算机引擎的方法来解决像我这样的问题)

    提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您只是想启动实例以执行一项任务,最简单的可能是以启动脚本的形式提供任务,如here所述

GCE实例可以通过向GAE发出http请求来报告工作状态。

或者,您可以使用sub/pub在GAE和GCE之间进行通信。在这种情况下 - 除非您假设用户打开浏览器显示进度页面并且此页面提取GAE以进行更新 - 您可能需要设置cron job on GAE以检查已完成的任务并采取相应措施。