bump PS: I haven't tried this on Google production infrastructure, so I'm wondering if it might only be a problem in dev mode?
On Apr 28, 9:33 pm, Marcel Overdijk <marceloverd...@gmail.com> wrote: > Can anybody confirm Deferred task should work with settings in > queue.xml? > > On Apr 27, 11:28 am, Marcel Overdijk <marceloverd...@gmail.com> wrote: > > > Hi Gianni, > > > If I understand correctly I can use the default handler for any > > deferred task and thus specifying the url is irrelevant. > > > How would I send a 'deferred' Task to a specific queue? Like this? > > QueueFactory.getQueue("email- > > queue").add(TaskOptions.Builder.withPayload(newEmailTask(email))); > > > This seems to work indeed as > > DeferredTaskContext.getCurrentRequest().getHeader("X-AppEngine- > > QueueName") prints out the 'email-queue'. So that's great. > > > Now I've added queue.xml to WEB-INF folder with: > > > <queue-entries> > > <queue> > > <name>default</name> > > <rate>1/s</rate> > > <retry-parameters> > > <min-backoff-seconds>1</min-backoff-seconds> > > <task-retry-limit>5</task-retry-limit> > > </retry-parameters> > > </queue> > > <queue> > > <name>email-queue</name> > > <rate>1/s</rate> > > <retry-parameters> > > <min-backoff-seconds>5</min-backoff-seconds> > > <task-retry-limit>3</task-retry-limit> > > </retry-parameters> > > </queue> > > <queue> > > <name>other-queue</name> > > <rate>1/s</rate> > > </queue> > > </queue-entries> > > > I've done some testing and inside the task I just throw an Exception > > to test the retry parameters. > > > What I see is that the retry parameters are not picked up (at least in > > Development server). > > > I keeps trying (more than the 3 time retry limit) and the backoff > > seconds are also not used. > > I see the first 3 or 4 retries within 2 seconds or so, and interval > > starts increasing, nut 5 between each retry. > > > Could it be that the queue.xml is not picked up or I did something > > wrong? > > > Thanks for your help and patience, > > Marcel > > > On Apr 27, 12:09 am, Gianni Mariani <gian...@google.com> wrote: > > > > On Wed, Apr 27, 2011 at 4:19 AM, Marcel Overdijk > > > <marceloverd...@gmail.com>wrote: > > > > > But is it possible to change queue settings for Deferred task? > > > > A DeferredTask is just like any other task. There is no restriction on > > > DeferredTasks with respect to queue settings or which queues you put them > > > in. > > > > The fact that a special handler exists for deferred task is > > > inconsequential. > > > It's just a simplification, in that you don't need to do that for > > > yourself. > > > i.e. if you do not specify a URL, it will work out of the box. The task > > > is > > > automatically set to the correct handler when you set the DeferredTask > > > payload. > > > > > Like a deferred Email task I would like to throttle differently then > > > > anotther queue (using Deferred Task( > > > > > So baically the questions are: > > > > - With Deferred task, can you have multiple queues? > > > > Like any task. You can add a deferred task to any queue. > > > > > - Is it possible to change throttling configuration per Deferred task > > > > queue? > > > > DeferredTasks may be placed in any queue. > > > > Just a note. You seem to be conflating handlers/servlet mappings with > > > queues. There is nothing stopping you from having a single handler accept > > > requests from any queue. > > > > In the case of the TaskOptions.payload(DeferredTask) method, it will > > > automatically set the handler url for you if it is not otherwise > > > specified. > > > URL is somewhat irrelevant for deferred task since the run() method you > > > define is essentially the "entry point" for the task. > > > > > On Apr 26, 4:59 pm, Gianni Mariani <gmari...@google.com> wrote: > > > > > The preconfigured URL mapping for the DeferredTaskServlet may be used > > > > > for any queue. There is no need to specify your own URL mapping that > > > > > I can see. > > > > > > On Apr 22, 8:05 pm, Marcel Overdijk <marceloverd...@gmail.com> wrote: > > > > > > > I did some quick testing and I found out: > > > > > > > QueueFactory.getQueue("email- > > > > > > queue").add(TaskOptions.Builder.withPayload(new > > > > > > EmailTask(email)).url("/email-queue")); > > > > > > > that with above I can enqueue adeferredtaskin the another queue > > > > > > (not default). > > > > > > I had to to use the url("/email-queue") setting otherwise it was > > > > > > pushed to the default __deferred__ handler. > > > > > > > I just configured the > > > > > > com.google.apphosting.utils.servlet.DeferredTaskServlet and mapped > > > > > > it > > > > > > to /email-queue > > > > > > > When I try System.out.println("queue name: " + > > > > > > DeferredTaskContext.getCurrentRequest().getHeader("X-AppEngine- > > > > > > QueueName")); > > > > > > I see the correct e-mail-queue being printed thus so far everything > > > > > > seems to work. > > > > > > > I also configured <task-retry-limit>5</task-retry-limit> for this > > > > > > queue but this does not seem to work. > > > > > > > So the setup is working but the DeferredTask / DeferredTaskServlet > > > > > > do > > > > > > not seem to look into the settings configured in queue.xml > > > > > > > Can somebody confirm this? > > > > > > Do you have more information on how you determined that this is not > > > > > working? > > > > > > > On Apr 22, 11:13 am, Marcel Overdijk <marceloverd...@gmail.com> > > > > > > wrote: > > > > > > > > Maybe use additional mappings to > > > > > > > com.google.apphosting.utils.servlet.DeferredTaskServlet > > > > > > > The documentation onDeferredTasks is a little bit sparse... Any > > > > > > > pointers appreciated. > > > > > > > > Basically what I would like to do is have multiple queue defined > > > > > > > with > > > > > > > different throttling settings. > > > > > > > And use DeferredTask to send them to one of the queues depending > > > > > > > on > > > > > > > the my needs. > > > > > > > > I would have no problem with configuring additional servlet > > > > > > > mappings > > > > > > > using com.google.apphosting.utils.servlet.DeferredTaskServlet > > > > > > > > On Apr 22, 8:58 am, Marcel Overdijk <marceloverd...@gmail.com> > > > > wrote: > > > > > > > > > Is it possible to useDeferredTasks outside the default queue? > > > > > > > > > I would like to setup multiple queues with different config > > > > settings. > > > > > > > > > For theDeferredTasks a specific handler is setup at /_ah/queue/ > > > > > > > > __deferred__ so I wonder how that would work with multiple > > > > queues.... > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups > > > > "Google App Engine for Java" group. > > > > To post to this group, send email to > > > > google-appengine-java@googlegroups.com. > > > > To unsubscribe from this group, send email to > > > > google-appengine-java+unsubscr...@googlegroups.com. > > > > For more options, visit this group at > > > >http://groups.google.com/group/google-appengine-java?hl=en. > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups > > > > "giannim" group. > > > > To post to this group, send email to gian...@google.com. > > > > To unsubscribe from this group, send email to > > > > giannim+unsubscr...@google.com. > > > > For more options, visit this group at > > > >http://groups.google.com/a/google.com/group/giannim/?hl=en. > > > > -- > > > Gianni Mariani > > > Google, Sydney -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.