module Typhoeus
def self.add_easy_request(easy_object)
def self.add_easy_request(easy_object) Thread.current[:curl_multi] ||= Typhoeus::Multi.new Thread.current[:curl_multi].add(easy_object) end
def self.easy_object_pool
def self.easy_object_pool @easy_objects ||= [] end
def self.get_easy_object
def self.get_easy_object if easy_object_pool.empty? Typhoeus::Easy.new else easy_object_pool.pop end end
def self.included(base)
def self.included(base) base.extend ClassMethods end
def self.init_easy_object_pool
def self.init_easy_object_pool 20.times do easy_object_pool << Typhoeus::Easy.new end end
def self.perform_easy_requests
def self.perform_easy_requests multi = Thread.current[:curl_multi] start_time = Time.now multi.easy_handles.each do |easy| easy.start_time = start_time end multi.perform end
def self.release_easy_object(easy)
def self.release_easy_object(easy) easy.reset easy_object_pool << easy end