简体   繁体   中英

Appscale cannot read queue.xml?

Our GAE application uses a lot of queues, and we have added custom queue, originally the default was this:

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

In our case, we added more entries

You can add more queue as needed here, but it seems Appscale is unable to pick up the added entries since we are getting this error:

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)

Note that our application is working with GAE and we have not modified anything in the Java codes that we have that we deployed in Appscale, so I think this is a bug or missing feature?

Appscale isn't supposed to pickup the changes by itself, you need to deploy the updated queue configuration, just like on GAE.

Note that in some cases (for example multi-services apps) the app-level configs (like the queue config) which are shared by all services might not be automatically updated simply by re-deploying the service(s) holding those configs. Required in such cases (and a good practice in general) is to use the dedicated commands for deploying each such app-level config independently of the deployments of any particular service.

From Deploying the queue configuration file :

The queue.xml file should reside in the WEB-INF directory of the default service.

To deploy the queue configuration file without otherwise altering the currently serving version, use the command:

 appcfg.sh update_queue <application directory> 

replacing <application directory> with the path to your application main directory.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM