将queue.xml部署到新的非默认版本不会创建队列

时间:2019-02-20 15:29:37

标签: google-app-engine

我正在尝试在GAE Java 8中使用任务队列,但由于某种原因,它似乎无法通过queue.xml文件正确部署。我也看不到Cloud Tasks控制台(从App Engine控制台重定向到的位置)中的任务队列。 运行该应用程序时出现错误java.lang.IllegalStateException: The specified queue is unknown : xxxxx。 该应用程序在本地运行良好。我可以看到任务队列出现在本地管理页面中。

这是否意味着我不能再通过queue.xml部署任务队列了?

1 个答案:

答案 0 :(得分:1)

您应该注意,队列配置不是每个版本的配置(甚至不是每个服务的配置!),而是全局的,每个应用程序的配置。如果需要,也可以选择每个项目-考虑到每个GCP项目只能有一个GAE应用程序。

此单队列配置由应用程序的所有服务的所有版本共享,因此:

  • 如果/当服务/版本需要不同的队列配置时,它们都需要合并到单个文件中以进行部署。
  • 注意部署,不要覆盖/对现有服务/版本产生负面影响

在某些情况下,queue.xml文件可能会在部署应用程序代码时自动部署,并非总是。官方推荐的部署方法是使用专用于队列配置的deploy命令,该命令可以独立于部署应用程序/服务代码而执行。来自Deploying the queue configuration file

  

要部署队列配置文件而无需另外更改   当前提供服务的版本,请使用以下命令:

appcfg.sh update_queues <application directory>
     

<application directory>替换为应用程序的路径   主目录。

如果有以下情况,请格外注意

  • 您应用中的其他非Java标准环境服务-它们使用queue.yaml队列配置文件,以2种不同的文件/格式管理相同的内容可能很棘手
  • 其他服务通过使用Cloud Tasks管理队列。参见Using Queue Management versus queue.yaml