2009/4/24 russblau@svn.wikimedia.org:
When server is under heavy load, it may time out (http code 504) on API queries with high limits; this revision lets QueryGenerator instances catch these errors, lower the query limit, and retry.
That's an interesting change, because those 504 happen quite often =)
#TODO: do some error correcting stuff
- if request.data[0].status == 504:
- raise Server504Error("Server %s timed out" % site.hostname())
This, however, doesn't seem to work as expected. From time to time, I get some tracebacks :
ERROR: Traceback (most recent call last): File "/home/nicdumz/pywikipedia/pywikibot/data/api.py", line 189, in submit body=params) File "/home/nicdumz/pywikipedia/pywikibot/comms/http.py", line 102, in request if request.data[0].status == 504: AttributeError: 'int' object has no attribute 'status'
WARNING: Waiting 5 seconds before retrying.
But it's nothing critical, because the error is caught, and the query is sent again.