0

我们的 GAE 应用程序使用了很多队列,并且我们添加了自定义队列,最初默认是这样的:

<queue-entries>
    <queue>
        <name>default</name>
        <rate>5/s</rate>
    </queue>
</queue-entries>

在我们的例子中,我们添加了更多条目

您可以在此处根据需要添加更多队列,但似乎 Appscale 无法获取添加的条目,因为我们收到此错误:

Mar 26 18:09:48 appscale-image0 #011at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Mar 26 18:09:48 appscale-image0 Caused by: java.lang.IllegalStateException: The specified queue is unknown : null
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.taskqueue.QueueApiHelper.translateError(QueueApiHelper.java:104)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.taskqueue.QueueImpl$2.wrap(QueueImpl.java:547)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.taskqueue.QueueImpl$2.wrap(QueueImpl.java:519)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.utils.FutureWrapper.wrapAndCache(FutureWrapper.java:53)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:90)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.taskqueue.QueueApiHelper.getInternal(QueueApiHelper.java:72)
Mar 26 18:09:48 appscale-image0 #011at com.google.appengine.api.taskqueue.QueueImpl.add(QueueImpl.java:411)

请注意,我们的应用程序正在使用 GAE,并且我们没有修改我们在 Appscale 中部署的 Java 代码中的任何内容,所以我认为这是一个错误或缺少的功能?

4

1 回答 1

1

Appscale 不应该自行获取更改,您需要部署更新的队列配置,就像在 GAE 上一样。

请注意,在某些情况下(例如多服务应用程序),由所有服务共享的应用程序级配置(如队列配置)可能不会通过重新部署包含这些配置的服务来自动更新。在这种情况下(以及一般的良好实践)需要使用专用命令来部署每个此类应用程序级别的配置,而与任何特定服务的部署无关。

部署队列配置文件

queue.xml文件应位于WEB-INF默认服务的目录中。

要在不更改当前服务版本的情况下部署队列配置文件,请使用以下命令:

appcfg.sh update_queue <application directory>

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

于 2018-03-26T21:16:33.327 回答