Well put Rusty, thats exactly the frustration im having!!! LOL On Dec 13, 9:42 pm, Rusty Wright <[email protected]> wrote: > What method gets called in your code when your app receives a GET request? > Or a POST request? I think that's what you're looking for. Unfortunately > the documentation for these frameworks sometimes tries to sugar coat things > and hide ("abstract away") these low level details, or they assume it's > obvious how things work, which it may be to to some but not all of us. > > > > John V Denley wrote: > > LOL - damn... though it shouldnt matter whats being used for the front > > end really....maybe Im asking the wrong question!! > > > Does anyone else have any idea how to explain what the entry point is > > within the java code, or where the code is that actually executes what > > thetaskqueueis supposed to do? Does anyone know how to ask the > > question Im trying to ask?! > > > On Dec 13, 8:22 pm, Rusty Wright <[email protected]> wrote: > >> Heh, I'm on the flip side; I don't know anything about GWT. > > >> John V Denley wrote: > >>> Thanks for this Rusty, Im not sure I understand all of it right away > >>> (perhaps with more investigation I will work it out) > >>> However Its worth mentioning that as far as I know Im not using Spring > >>> or Stripes or Struts (not even sure what any of these are!) > >>> I am using native GWT (v2.0)/GAE(v1.2.8) and using RPC to make calls > >>> to the server side. > >>> I have tried creating a "public" function in my main java file (right > >>> above the onModuleLoad() function) as follows: > >>> public void testqueues() > >>> { > >>> Window.alert("hello test queues"); > >>> } > >>> The thinking then being that I might be able to make a call to > >>>http://your-gae-app.appspot.com/testqueuesandit would show the alert > >>> box. (I would like to prove this in the dev environment, but Im not > >>> sure how to do this now that the URL for that is currently > >>>http://localhost:8888/IDeBanet.html/testqueues?gwt.codesvr=192.168.0....) > >>> Its entirely possible that I have totally misunderstood how this is > >>> meant to be working and if so I apologise for asking stupid questions, > >>> or making incorrect/confusing statements, but it seems theres no real > >>> way of figuring out this stuff until you just try to implement it! Ive > >>> learnt a huge amount about web development and in particular GWT/GAE > >>> over the last 4-5 months!! > >>> Cheers, > >>> J > >>> On Dec 13, 5:46 am, Rusty Wright <[email protected]> wrote: > >>>> I think I got the gist of it. As a test I modified the Stripes action > >>>> bean that handles my first page and added the following to its > >>>> @DefaultHandler method: > >>>> finalQueuequeue= QueueFactory.getDefaultQueue(); > >>>> queue.add(TaskOptions.Builder.url("/zugzug.zug")); // web.xml maps > >>>> *.zug to stripes > >>>> It's adding ataskto thequeue. > >>>> Then I created an action bean for thegaetaskqueueautomaton to poke: > >>>> @UrlBinding("/zugzug.zug") > >>>> public class TaskQueueActionBean implements ActionBean { ... > >>>> and its @DefaultHandler method contains: > >>>> @SuppressWarnings("unchecked") > >>>> final List headerNames = > >>>> Collections.list(getContext().getRequest().getHeaderNames()); > >>>> this.log.debug("header names: {}", headerNames); > >>>> And then the log received: > >>>> header names: [Content-Type, User-Agent, Referer, Host, > >>>> X-AppEngine-QueueName, X-AppEngine-TaskName, X-AppEngine-TaskRetryCount, > >>>> Content-Length] > >>>> The first time I tried it I forgot to create the corresponding jsp view > >>>> file, zugzug.jsp (which is essentially empty), and thetaskqueueautomaton > >>>> kept retrying because stripes was returning an error because the jsp > >>>> file was missing; lots of those log.debug lines in the log file. After > >>>> I fixed that then it was only in there once for each time I went to my > >>>> first page. > >>>> The first page action bean enqueued thetask, thetaskqueueautomaton sent > >>>> an http request to the url zugzug.zug, then the TaskQueueActionBean was > >>>> invoked and its success caused the automaton to dequeue thetask(but not > >>>> if it returned an error; then the automaton retries). > >>>> Rusty Wright wrote: > >>>>> The docs say "The defaultqueuewill call the request handler at the URL > >>>>> /worker ..." So it sounds to me that if you were, forexample, using > >>>>> Spring MVC, and had a Spring controller with > >>>>> @Controller > >>>>> @RequestMapping("/worker") > >>>>> public final class WorkerController { > >>>>> �...@requestmapping(method = RequestMethod.GET) > >>>>> public String handleGetRequest(final ModelMap model) { > >>>>> this.log.debug("called"); > >>>>> return (null); > >>>>> } > >>>>> } > >>>>> then it would call your handleGetRequest() method 5 times a second, by > >>>>> sending an http GET (or POST?) request to your /worker url each time. > >>>>> Similarly, with Stripes (and for Struts 2 probably something similar) it > >>>>> would be something like > >>>>> @UrlBinding("/worker") > >>>>> public class WorkerActionBean implements ActionBean { > >>>>> �...@defaulthandler > >>>>> public Resolution handleRequest() { > >>>>> this.log.debug("called"); > >>>>> return (null); > >>>>> } > >>>>> } > >>>>> I'm returning null because I don't know what thetaskqueuething does > >>>>> with what it gets back (I didn't read much of their docs; to tell the > >>>>> truth, I stopped at that sentence I quoted at the top because it sounds > >>>>> very similar to their cron thing, which docs I did read most of). I'm > >>>>> undoubtedly also lacking the code needed to pull the nexttaskoff the > >>>>> queueand do something with it. > >>>>> I'm assuming that you have some web framework in front of everything and > >>>>> thus don't need a servlet mapping in your web.xml for the /worker url > >>>>> since the web framework is handling the url mapping. > >>>>> So they're "pinging" your /worker url using a plain old http request to > >>>>> initiate running eachtask; your controller or action bean is what > >>>>> performs thetask. Think of it like you typed in your browser's address > >>>>> boxhttp://your-gae-app.appspot.com/worker?task_queue_params_go_hereor > >>>>> you used the command line programs cURL or wget. > >>>>> If I understand this correctly then I would say that their sentence I > >>>>> quoted isn't as clear as it could be. Given the way it's stated, is the > >>>>> taskqueuereally able to bypass all of the http request processing and > >>>>> directly invoke my handler method? How would it know which class+method > >>>>> handles that url? I would think that the servlet container calls the > >>>>> request method, as a result of theirtaskqueueautomaton diddling the url. > >>>>> John VDenleywrote: > >>>>>> Yes, I would like a "real"exampleof how to do this too, I get that > >>>>>> we need to use a URL to accept the request to do something, but where > >>>>>> does the URL start executing code. obviously its not going to be at > >>>>>> the "onModuleLoad" entry point. > >>>>>> Thanks, > >>>>>> John > >>>>>> On Nov 11, 1:23 am, edarroyo <[email protected]> wrote: > >>>>>>> Is there anygaesamples usingtaskqueues that we can look at? > >>>>>>> I am having a really hard time understanding how to useTaskQueues. > >>>>>>> Thanks! > >>>>>>> On Oct 27, 6:18 pm, Vincent <[email protected]> wrote: > >>>>>>>> Thanks , Jason. It's very helpful for me to understand how to use > >>>>>>>> this > >>>>>>>> new API. > >>>>>> -- > >>>>>> 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 > >>>>>> [email protected]. > >>>>>> To unsubscribe from this group, send email to > >>>>>> [email protected]. > >>>>>> 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 > >>> "Google App Engine for Java" group. > >>> To post to this group, send email to > >>> [email protected]. > >>> To unsubscribe from this group, send email to > >>> [email protected]. > >>> For more options, visit this group > >>> athttp://groups.google.com/group/google-appengine-java?hl=en. > > > -- > > > 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 [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine-java?hl=en.
-- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
