William Vambenepe's blog

IT management in a changing IT world

An idealized physician's perspective, such as is taught in buy cheap online viagra school, sees the core aspects of the process as the physician learning the patient's symptoms, concerns and values; in response the physician examines the patient, interprets the symptoms, and formulates a diagnosis to explain the symptoms and their cause to the patient and to propose a treatment.In the Republic of Georgia, the Eliava Institute of Bacteriophage, drug generic viagraThe above two factors can be compromised by cheap herbal viagra compulsions (eating disorders such as exercise bulimia, anorexia, and other bulimias), misinformation, a lack of organization, or a lack of motivation.LAB have been used in the food industry for many years, because they are able to buy viagra uk sugars (including lactose) and other carbohydrates into lactic acid.Maintenance of a healthy gut flora is, however, dependent on many factors, cheapest viagra the quality of food intake.

11
Feb
2009

Google App Engine is teasing me

by William (@vambenepe on Twitter)

Version 1.1.9 of the Google App Engine (GAE) SDK was released earlier this week. The first item in the announcement covers the big news, that developers can “use the Python standard libraries urllib, urllib2 or httplib to make HTTP requests”. My first thought reading this was that I was finally going to be able to use timeouts on outgoing HTTP requests. I care about this because my earlier attempt to emulate a long-running process in GAE was stymied by the GAE quota system, something I think I can work around if I can timeout a request once it has spawned its successor (more precisely, once it has spawned the successor of the incoming request that created the new outgoing request).

I got the new SDK last evening and moved the code from using urlfetch to using urllib2 (with timeout). On my local machine it seems to work, but the quota system (that I am trying to finesse) doesn’t run in the SDK. So the only real test happens once you deploy the app in the Google environment. Which is when I realized that GAE uses Python 2.5.2 and that the timeout parameter in urllib2 (and httplib) came with 2.6. Slap.

I was especially disappointed because the links for urllib2 and httplib in the GAE 1.1.9 SDK announcement take us to the Python 2.6.1 documentation. The timeout parameter is right there at the top of these pages, staring at me. It would be more accurate for this announcement to point to the 2.5.2 documentation (here it is for urllib2 and httplib).

It doesn’t really matter of course because this is just a toy project. And a real scheduler seems to be in the works (see this pre-announcement and this work in progress). I just do this as a fun way to get a glimpse of what it takes to turn existing infrastructure into a *aaS product, something that is going on in different ways in many places these days. Linux wasn’t created to run on something else than hardware. Xen wasn’t created to support EC2. Python wasn’t created to support GAE.

And GAE wasn’t created to support long-running processes. But I haven’t given up.

Related posts:

  1. Long-running processes on Google App Engine: it finally works
  2. Emulating a long-running process (and a scheduler) in Google App Engine
  3. Some breathing room for Google App Engine requests
  4. Google App Engine: less is more
  5. Now I know why GAE has been killing me
  6. Is Business Process Execution the killer app for PaaS?
AddThis Social Bookmark Button Follow @vambenepe on Twitter.

One Response to “Google App Engine is teasing me”

  1. William Vambenepe’s blog » Blog Archive » Long-running processes on Google App Engine: it finally works Says:

    [...] guilt-tripped the Google App Engine (GAE) team. Just last night I was complaining that they were teasing me (supporting urllib2, but an older version, without timeout support). And tonight I noticed a new [...]

Leave a Reply