On 10:18 am, [email protected] wrote: >I have a situation where a service I am using will occasionally not >respond >for considerable periods - hours not minutes. > >I am using cooperate and yield to loop round a series of requests I >want to >make > >The actual function to send the request returns a deferred to the >yield. I >add the callbacks onto this and set a calllater to fire in 30 seconds. > >If that fires I can then cancel the deferred. But I think I ought to be >cancelling the request as well else I assume I will be leaking request >objects that might not get dealt with. > >However, I can't see where I might cancel the request. Or should I be >dropping the connection associated with the request and if so where >would I >be doing that. > >Have I got that right?
The cancel method of the Deferred returned by Agent.request is probably the right API to use to do the cleanup you're interested in. However, cancelation is not specifically implemented for the Agent.request Deferred yet. Though it may sound like one, this is not a contradiction due to the way Deferred cancelation works (ideally we would have documentation about Deferred cancelation that would explain why this is, but we don't). See http://twistedmatrix.com/trac/ticket/4330 for progress on this issue or to contribute. Jean-Paul _______________________________________________ Twisted-web mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
