在谷歌应用引擎

时间:2015-11-17 14:22:10

标签: google-app-engine cron staging

我想在Google App Engine上设置一个临时环境,并在以下问题中找到了很好的指导:How to set up a staging environment on Google App Engine

我唯一没有回答的问题是如何在这种情况下处理Cron作业。理想情况下,我只需要更改要部署到生产的版本,但我担心这意味着所有cron作业也会在暂存版本上运行,或者情况并非如此?

1 个答案:

答案 0 :(得分:1)

如果您使用的是其他版本的方法,则需要注意this

  

如果已为作业设置目标参数,则请求为   发送到指定的版本。否则Cron请求被发送到   应用程序的默认版本。

我一直在使用target参数将cron作业定向到不同的模块,基于上面的引用我猜测它可以用来将作业定向到不同的版本,使用module routing via URL,可能是这样的:

  target: version

  target: version-dot-module

就个人而言,我更喜欢不同的应用程序方法,以确保升级和生产环境之间不会产生干扰,即使在执行大规模重新打破后向兼容性时也是如此:)

至于方法,我使用来自代码的2个不同分支的2个不同工作区,它们之间的差异很小(application文件中的.yaml字段以及其他与分段相关的增量):

  • staging工作空间&分支
  • production工作空间&分支

每当我对staging分支中的代码感到满意时我:

  • 合并staging
  • 中的production分支
  • 更新production工作区并从中进行部署 - >更新production应用
  • 禁用staging工作空间中我需要的任何内容(如果需要,还可以将更改提交到staging分支)
  • staging工作区部署 - >更新staging应用

该方法也可能在不同版本的方法中使用,version文件中的.yaml字段在2个分支中不同。