Reputation: 35306
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?
Upvotes: 0
Views: 64
Reputation: 39824
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 theWEB-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.
Upvotes: 1