As a follow up on this -- task queue throttles at queries per second, not dequeues per second. The current limit is 20 qps. You can't fool it by using long running request handlers. I tried it in production.
Still looking for ways to get more than 20 qps for background jobs. Has anyone successfully done this? I would consider using an external box to generate inbound traffic if that's the only way, although I'm reluctant to do that. -- James On Oct 28, 12:00 pm, James Cooper <jamespcoo...@gmail.com> wrote: > aha! I missed that. I wonder if "task invocations/second" means > "dequeues/second". > > If it means dequeues/second then in theory you could write a request > handler that burns through a queue of work items in the datastore, re- > queueing itself and exiting after 25 seconds and achieve 250 CPU > seconds/second of concurrency. > > Is that crazy talk? > > I hope these limits go up when Tasks Queues exits beta. Google is > selling us computer time but is setting some fairly low limits on what > we're allowed to buy. 10 cores of 1.2ghz CPU time is roughly > equivalent to a modern 4 core desktop machine right? > > -- James > > On Oct 28, 12:27 pm, Scott Hernandez <scotthernan...@gmail.com> wrote: > > > The docs here seem to indicate that dequeuing happens at 5/sec > > (default and 10 > > max).http://code.google.com/appengine/docs/java/taskqueue/overview.html > > > On Oct 27, 8:41 am, James Cooper <jamespcoo...@gmail.com> wrote: > > > > Hi there, > > > > Last night I experimented with task queues to see what level of > > > concurrency I could achieve when running on the live environment. > > > > Summary of the test app: > > > - Bulk load 30,000 entities of a given type (3 properties / entity > > > object). > > > - Command line job I ran from my PC that hit an URL to queue the > > > entries > > > - This program was multi-threaded so I could simulate a bit of > > > load (10 concurrent threads) > > > - Queueing URL created a task queue entry within the same app > > > - 2nd URL handled the task queue request and stored entity to the > > > Datastore > > > > I watched the task queue dashboard for a few minutes and observed a > > > few things: > > > - Enqueue rate quickly outpaced dequeue rate > > > - I was enqueing at about 12 requests / second, but dequeuing at > > > 4 requests / second > > > - GAE did not appear to increase the dequeue rate over time in > > > response to my queue depth > > > > Result: It took a very long time to dequeue 30,000 tasks (over 2 > > > hours). It seemed that GAE was running one instance of my app. > > > > Expected: Much higher throughput. > > > > Is this expected behavior? It seems that given the 30 second request > > > limit that task queues are an important way to increase throughput > > > (alaMapReduce). But the "swarm" of app instances never seemed to > > > arrive. > > > > thanks > > > > -- James -- 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-j...@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=.