Revision: 5725 Author: russblau Date: 2008-07-17 13:39:55 +0000 (Thu, 17 Jul 2008)
Log Message: ----------- Better catching of HTTP 503 errors.
Modified Paths: -------------- trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2008-07-17 12:01:31 UTC (rev 5724) +++ trunk/pywikipedia/wikipedia.py 2008-07-17 13:39:55 UTC (rev 5725) @@ -1354,6 +1354,18 @@ return None try: response, data = self.site().postForm(address, predata, sysop) + if response.status == 503: + if 'x-database-lag' in response.msg.keys(): + # server lag; Mediawiki recommends waiting 5 seconds + # and retrying + if verbose: + output(data, newline=False) + output(u"Pausing 5 seconds due to database server lag.") + dblagged = True + time.sleep(5) + continue + # Squid error 503 + raise ServerError(response) except httplib.BadStatusLine, line: raise PageNotSaved('Bad status line: %s' % line.line) except ServerError: @@ -1366,16 +1378,6 @@ if retry_delay > 30: retry_delay = 30 continue - if response.status == 503 \ - and 'x-database-lag' in response.msg.keys(): - # server lag; Mediawiki recommends waiting 5 seconds and - # retrying - if verbose: - output(data, newline=False) - output(u"Pausing 5 seconds due to database server lag.") - dblagged = True - time.sleep(5) - continue # If it has gotten this far then we should reset dblagged dblagged = False # Check blocks