Thanks so much for testing this out Marzia! It is really awesome how
super helpful you are. You have helped me get one step closer to a
solution...
I have my app setup to use my own domain. When I go directly to my
appspot.com address it works:
http://lenzasapp2.appspot.com/test?sleep=35
but going through my domain fails:
http://apartmenthunter.lenza.org/test?sleep=35
This give you any ideas? Thanks again for your help!
-Lenza
On Feb 24, 1:20 pm, Marzia Niccolai <[email protected]> wrote:
> Hi,
>
> I really am out of ideas since it works perfectly for me
> (seehttp://yo.appspot.com/?sleep=2vshttp://yo.appspot.com/?sleep=35) where I
> used your exact handler information.
>
> The issue is that, for some reason, the handler continues to execute too
> long after the DeadlineExeededError is thrown. So when you see the Google
> Page this is the expected behavior. But if all you do is render that simple
> text after catching the error, it's strange that you exceed the second
> deadline.
>
> Are you sure there are no indenting or other issues that may cause your
> script to execute something after self.response.out.write("This is the
> normal result message")?
>
> Also, it's worth mentioning that the dev_appserver does strictly enforce the
> request limit times as the production system does, so it may not be
> something you notice on the dev_appserver when trying to test.
>
> -Marzia
>
> On Tue, Feb 24, 2009 at 2:07 AM, lenza <[email protected]> wrote:
>
> > Thanks for the response Marzia. I tried again with the return
> > statement and I am still having the same issue. The code I pasted
> > below is the entirety of my handler, so there is nothing in it that
> > would cause a timeout after the initial DeadlineExceededError. I also
> > checked that I am importing the correct DeadlineExceededError, and I
> > can tell the error is being caught because I get the "Ran out of
> > time." message in my logs. Any other ideas?
>
> > It is also interesting to note that for most exceptions I get a stack
> > trace of the error. In this case I am getting a Google branded page
> > titled "502 Server Error" that says:
>
> > Google Error
>
> > Server Error
> > The server encountered a temporary error and could not complete
> > your request.
>
> > Please try again in 30 seconds.
>
> > What is this page?
>
> > On Feb 23, 10:53 am, Marzia Niccolai <[email protected]> wrote:
> > > Hi Lenza,
>
> > > This works for me. So I think it might be one of two things.
>
> > > First, are you importing the correct DeadlineExceededError? You need to
> > > make sure to have this import:
> > > from google.appengine.runtime import DeadlineExceededError
>
> > > If you don't, sleeping for 30 seconds will raise this error, but it won't
> > be
> > > caught.
>
> > > The other thing is that you need to explicitly return your handler after
> > you
> > > print the error message or else the handler will keep executing, and that
> > > may be the cause of the error (not returning the message quick enough).
> > So,
> > > modify the exception with:
> > > except DeadlineExceededError:
> > > logging.error("Ran out of time.")
> > > self.response.clear()
> > > self.response.set_status(500)
> > > self.response.out.write("This operation could not be completed in
> > > time...")
> > > return
>
> > > -Marzia
>
> > > On Sun, Feb 22, 2009 at 9:55 PM, lenza <[email protected]> wrote:
>
> > > > I am attempting to customize my application response to a
> > > > DeadlineExceededError. I am able to catch the exception, but my
> > > > custom response is not getting through. Instead I get the default
> > > > "502 Server Server Error" page even after clearing the response and
> > > > writing a custom one. It seems as if the GAE is allowing time for
> > > > cleanup, but ignoring anything written to the response object. Is
> > > > anyone doing this successfully?
>
> > > > More details...
>
> > > > The GAE documentation states that you can customize your applications
> > > > response to a DeadlineExceededError with the following example code
> > > > (seehttp://code.google.com/appengine/docs/python/runtime.html):
>
> > > > class MainPage(webapp.RequestHandler):
> > > > def get(self):
> > > > try:
> > > > # Do stuff...
>
> > > > except DeadlineExceededError:
> > > > self.response.clear()
> > > > self.response.set_status(500)
> > > > self.response.out.write("This operation could not be completed
> > > > in time...")
>
> > > > I have the following handler for "/test" on my App:
>
> > > > class TestPage(webapp.RequestHandle):
> > > > def get(self):
> > > > try:
> > > > sleeptime = int(self.request.get('sleep'))
> > > > if(sleeptime == 0):
> > > > logging.info("Programatically raising
> > > > DeadlineExceededError")
> > > > raise DeadlineExceededError
> > > > else:
> > > > time.sleep(sleeptime)
>
> > > > except DeadlineExceededError:
> > > > logging.error("Ran out of time.")
> > > > self.response.clear()
> > > > self.response.set_status(500)
> > > > self.response.out.write("This operation could not be
> > > > completed in time...")
>
> > > > logging.info("About to write normal result message")
> > > > self.response.out.write("This is the normal result message")
>
> > > > When I request "/test?sleep=30" I get the "502 Server Server Error"
> > > > page and the in my logs:
>
> > > > (E) 02-22 09:31PM 05.652
> > > > Ran out of time.
> > > > (I) 02-22 09:31PM 05.653
> > > > About to write normal result message
>
> > > > When I request "/test?sleep=0" I get the expected "This operation
> > > > could not be completed in time..." message page. Anyone know what's
> > > > up with this? Thanks for any help!
>
> > > > -Lenza
>
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---