Carl Fürstenberg wrote on Friday, July 17, 2009 5:19 PM:
> I don't agree with your notion at all. max-lag should be 
> handled outside the normal API system, and should be returned 
> as 503. The nevessary headers are allready there, so your 
> argument that you would need to  parse the api-response twice 
> is just wrong; Following pseudo code would be how maxlag 
> should be handled:
> 
> function handle_response() {
> if status == 503
>   sleep( get_header_value( "Retry-After" ) )
>   http_post( this->post, this->handle_response )
>   return
> endif
> 
> parse_api()
> blablabla()
> }
> 
Your argument assumes that all HTTP 503 errors are caused by maxlag, but
this is not necessarily the case.
http://www.mediawiki.org/wiki/Manual:Maxlag_parameter. If the 503 is caused
by a squid timeout, your pseudocode will fail.  Further the response body
might or might not be a valid api response on a 503; if it were a maxlag
issue, it would be an api response inside the HTML body, but if it were a
squid timeout it would just be an HTML message not containing an api
response.  So I think Roan's decision was correct.

Russ


_______________________________________________
Mediawiki-api mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

Reply via email to