[Twisted-Python] asynchronous response

Terry Jones terry at jon.es
Thu Dec 17 03:24:54 MST 2015


Hi Kevin

I found it extremely beneficial to read the Twisted sources, in particular
twisted.internet.defer. In your case, see
https://github.com/twisted/twisted/blob/trunk/twisted/internet/task.py#L821

One nice thing that happens when you read the source is that you see quite
a number of API methods (including deferLater, and also succeed, fail,
maybeDeferred, some of the Deferred class methods, DeferredList, and the
wonderful DeferredQueue) are actually just a few lines of code, doing
something quite simple with a deferred. I found that figuring out how they
all did what they did made my understanding of deferreds much better. I
really love deferreds :-) Here's a bit I wrote about them, using
DeferredQueue as the example
http://blogs.fluidinfo.com/terry/2010/07/23/asynchronous-data-structures-with-twisted-deferreds/

Hope that helps.

Terry


On Thu, Dec 17, 2015 at 8:38 AM, Kevin Mcintyre <kebin70 at gmail.com> wrote:

> holy moly - you're right!  This fool will sleep so much better...a million
> thanks.
>
> On Thu, Dec 17, 2015 at 12:09 AM, Amber "Hawkie" Brown <
> hawkowl at atleastfornow.net> wrote:
>
>>
>> > On 17 Dec 2015, at 08:11, Kevin Mcintyre <kebin70 at gmail.com> wrote:
>> >
>> > Hey - I'm confused, so nothing new :) ...but I'm running at this
>> example and I'm scratching my head.
>> >
>> >
>> http://twistedmatrix.com/documents/current/web/howto/web-in-60/asynchronous-deferred.html
>> >
>> > I would've thought 2 requests could be served simultaneously, but when
>> I fire off 2 requests the first received gets it's response after 5
>> seconds, while the second response takes 10 seconds.
>> >
>> > I think I understand what's happening, but I don't know why...and I
>> would love an example where the subsequent request doesn't have to wait for
>> the first request to finish.
>> >
>> > Thanks,
>> > Kevin
>>
>>
>> I've ran into this before --  browsers sometimes rate-limit requests, and
>> won't actually send the second request until the first is done, over the
>> same connection, rather than making a second TCP connection -- try using
>> cURL or wget, which has no such limitation, and see if it works any better.
>>
>> - Amber
>>
>> _______________________________________________
>> Twisted-Python mailing list
>> Twisted-Python at twistedmatrix.com
>> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>>
>>
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20151217/b8ca2e1e/attachment-0002.html>


More information about the Twisted-Python mailing list