def external_link_checker(external_urls)
      external_urls = Hash[external_urls.sort]

      count = external_urls.length
      check_text = pluralize(count, 'external link', 'external links')
      @logger.log :info, "Checking #{check_text}..."

      # Route log from Typhoeus/Ethon to our own logger
      Ethon.logger = @logger

      establish_queue(external_urls)

      @hydra.run
    end
def external_link_checker(external_urls)
      external_urls = Hash[external_urls.sort]

      count = external_urls.length
      check_text = pluralize(count, 'external link', 'external links')
      @logger.log :info, "Checking #{check_text}..."

      # Route log from Typhoeus/Ethon to our own logger
      Ethon.logger = @logger

      establish_queue(external_urls)

      @hydra.run
    end
Proofer runs faster if we pull out all the external URLs and run the checks
 at the end. Otherwise, we're halting the consuming process for every file during
 `process_files`.

 In addition, sorting the list lets libcurl keep connections to the same hosts alive.

 Finally, we'll first make a HEAD request, rather than GETing all the contents.
 If the HEAD fails, we'll fall back to GET, as some servers are not configured
 for HEAD. If we've decided to check for hashes, we must do a GET--HEAD is
 not available as an option.