[Twisted-web] Timeouts on Agent requests
Erik Forsberg
forsberg at opera.com
Mon Aug 20 01:34:39 EDT 2012
Hi!
I'm thinking about using Twisted as a http client, talking to some
rather uncooperative servers that sit on the other side of some really
crappy parts of the internet. So I need timeouts.
I was looking into t.w.c.Agent, and see that it has a connect timeout
option, which is good, but lacks request timeouts. Then found
http://twistedmatrix.com/trac/ticket/4330 which looks like a solution.
I'm a little confused on how to use #4330. Would something like this be
appropriate:
def main():
agent = Agent(reactor)
deferred = agent.request('HEAD', url)
cancel = reactor.callLater(30, deferred.cancel)
deferred.addCallback(handle_request)
deferred.addErrback(handle_errors)
def handle_request(response):
cancel.cancel()
<handle response>
def handle_errors(failure):
<see if failure is CanceledError>
Will this also automatically give me a connection timeout, or should I
give Agent's constructor connectTimeout as argument and handle that in
handle_errors too?
I might have totally misunderstood the whole thing too, as I'm a bit new
to Twisted.
Thanks,
\EF
More information about the Twisted-web
mailing list