Hi Gianni,

As my app was not on production yet I was only trying in Development
mode.
After your feedback I create a test app which I deployed to Production
and indeed the settings also work for Deferred Tasks.
That's really good news because they alternative to Deferred Tasks
(creating servlets or something similar and then retrieving params
again) is very cumbersome.

Thanks for your help.

On May 6, 9:57 am, Gianni Mariani <gmari...@google.com> wrote:
> Hi Marcel,
>
> Yes, it should work in a production server, not on the development
> server.
>
> Are you trying this on the production environment?  If so, let me know
> what your app id is.
>
> g
>
> On Apr 27, 7:28 pm, 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(ne 
> > wEmailTask(email)));
>
> > This seems to work indeed as
> > DeferredTaskContext.getCurrentRequest().getHeader("X-AppEngine-
> > QueueName")printsoutthe '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 workoutof 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 foundout:
>
> > > > > > 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.

Reply via email to