title: Block a socket used by an agent
body: <p>I'm crawling an API. There is many many many requests. And if I do too much requests, the API starts by looking suspicious, and I get a bunch of 503. That's ok, when I get a 503 I've set a timer before re-running the request, and this timer is powered by two for each 503 of a same request.</p>
  
  <p>BUT it doesn't work. Because my timer is asynchroneous. When I get the 503, after starting this timer, Node immediately reuse the socket for a pending request. So my timer basically doesn't change anything.</p>
  
  <p>How can I prevent this ?</p>
  
  <p>What I have tried so far :</p>
  
  <ul>
  <li>using a <code>settimeout</code> before restarting the request</li>
  <li>using the <code>sync</code> module, and its <code>pause</code> (does not work, because the fiber is asynchroneous</li>
  </ul>
  
  <p>Any idea ? :&lt;</p>