On Wed, Aug 1, 2012 at 10:50 AM, Jeff Schnitzer <[email protected]> wrote:
> It's hard to imagine this working without some sort of background
> thread in the frontend instances.  Otherwise how do you get the
> frontend to commit its data to whatever datasource you want?

I suspect I misunderstand this next point:
"All threads in a request must finish before the request deadline (60
seconds for online requests and 10 minutes for offline)."
https://developers.google.com/appengine/docs/python/python27/newin27#Multithreading
It most likely means the thread can't outlive the request, which is
why it's bound by the request's lifetime deadline. Sad.

One option is to use a periodic cron or task to ping the front-end and
clear the list, but you can't address individual instances, so no
guarantee that you'll clean up orphans.  Sad.

You could also scale the amount in the list depending on how many
requests per second you're getting.  If 1000, batch like mad.  If <
20, submit every request.  The risk with this is that you get 1000's,
then instantly zero.  But you then likely have another problem.
Hopefully workable?

> GAE can easily proxy 1000qps to another service; that's just a
> question of having enough instances

I thought GAE can also do 1000 puts per second if you have a lot of
instances? I'm kinda assuming Richard's trying to push lots through
relatively few instances so one pause in the list affects many values
being processed.  Richard, could you clarify?

One other question, since I've never used a backend.  We're able to
address them directly, yes?  Can't he just do an HTTP POST to the
backend directly rather than a put()?

Richard

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" 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?hl=en.

Reply via email to