If the url changes Browsers get upset.  If the url is the same most do not.
 
You are right, there are limitations this is not a silver bullet but it will
help a lot.  
 
If your post data was minimal you could convert it to get on the redirect.
 
OR. if you are really sneaky. 
 
Log an error, put the post data on the error with a GUID, Redirect to a
request with the guid.  Grab the error from the Logs.
 
(logs work even when datastore doesn't)
 
From: [email protected]
[mailto:[email protected]] On Behalf Of Joshua Smith
Sent: Monday, January 23, 2012 9:13 AM
To: [email protected]
Subject: Re: [google-appengine] Hide Dead Line Exceeded Errors from User
(Python)
 
I'm surprised that redirect would work on POST. The RFC
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html says:
 
If the 302 status code is received in response to a request other than GET
or HEAD, the user agent MUST NOT automatically redirect the request unless
it can be confirmed by the user, since this might change the conditions
under which the request was issued.
 
It not only says "MUST NOT" but it says it in CAPITAL LETTERS :)
 
On Jan 23, 2012, at 11:33 AM, Brandon Wirtz wrote:



You can't sleep, it won't work.  Post should work in most modern browsers
they will forward post data. Works in IE and chrome.
 
 
 
From: [email protected]
[mailto:[email protected]] On Behalf Of Joshua Smith
Sent: Monday, January 23, 2012 4:42 AM
To: [email protected]
Subject: Re: [google-appengine] Hide Dead Line Exceeded Errors from User
(Python)
 
Cute. Won't work for a POST, though. Also, I wonder if a short sleep might
be in order. Another variation would be to check how much wallclock time has
passed, and if it's not a lot, just return get(self) (which would work for
POST).
 
On Jan 23, 2012, at 6:05 AM, Brandon Wirtz wrote:




You Just Died a Horrible death your app timed out, the world is ending
around you.  Deal with it. No, seriously, handle the exception and try it
again it will work eventually.
 
Here is the code.  
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 
from google.appengine.runtime import DeadlineExceededError
 
class MainPage(webapp.RequestHandler):
    def get(self):
        try:
            # Do stuff...
 
        except DeadlineExceededError:
            self.response.clear()
            self.response.headers['Location'] = response.geturl()
            self.response.set_status(302)
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 
Feel free to send Dancing Girls, Mermaids, Mountain Dew, or whatever else if
this makes all your DEE issues go away.  We are testing this for keeping
free apps free. Server might get slow, but pages will always load. (unless
you get 7 302's then most browsers give up.) 
 
 
 
 
 
-- 
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.
 
-- 
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.
 
-- 
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.
 
-- 
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.

-- 
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