
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-... 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

Just a follow-up with my own sanity check example. http://twistedmatrix.com/documents/current/web/howto/web-in-60/asynchronous-... My conclusion is that deferLater is a blocking method - am I wrong? On Wed, Dec 16, 2015 at 4:11 PM, Kevin Mcintyre <kebin70@gmail.com> wrote:

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

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-wit... Hope that helps. Terry On Thu, Dec 17, 2015 at 8:38 AM, Kevin Mcintyre <kebin70@gmail.com> wrote:

On Thu, Dec 17 2015, Amber "Hawkie" Brown wrote:
I don't think this is a limitation per se. For what I remember the http 1.1 specification says that the browser should wait for the first response before they continue to send the other requests. Those can be then sent in pipeline. So no limitation but specification. I hope I did not misunderstood your respose. Marco

Just a follow-up with my own sanity check example. http://twistedmatrix.com/documents/current/web/howto/web-in-60/asynchronous-... My conclusion is that deferLater is a blocking method - am I wrong? On Wed, Dec 16, 2015 at 4:11 PM, Kevin Mcintyre <kebin70@gmail.com> wrote:

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

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-wit... Hope that helps. Terry On Thu, Dec 17, 2015 at 8:38 AM, Kevin Mcintyre <kebin70@gmail.com> wrote:

On Thu, Dec 17 2015, Amber "Hawkie" Brown wrote:
I don't think this is a limitation per se. For what I remember the http 1.1 specification says that the browser should wait for the first response before they continue to send the other requests. Those can be then sent in pipeline. So no limitation but specification. I hope I did not misunderstood your respose. Marco
participants (4)
-
Amber "Hawkie" Brown
-
Kevin Mcintyre
-
Marco Giusti
-
Terry Jones