wget в приложении rails - не может выделить память - PullRequest
0 голосов
/ 22 июля 2011

Я использую wget в своем приложении rails для извлечения страниц с веб-сайта и хранения некоторых извлеченных данных из них. Все начинается плавно, но через некоторое время перерывы говорят can not allocate memory.

Пожалуйста, дайте мне знать, как решить эту проблему ??

ОБНОВЛЕНИЕ (Код добавлен)

  def self.crawl_my_links
    puts "------------------- looping -------------------------------"
    valid_domains = get_valid_domains
    crawl_links = CrawlLink.all(:conditions => ["server_id = #{Monitoring::SERVER_ID} and crawl_status = 'Assigned'"], :order => "url").shuffle
    crawl_links.each do |crawl_link|
        url_host = URI.parse(URI.encode(crawl_link.url)).host
        next if crawl_link.url.blank? or !crawl_link.url.starts_with?("http")
        site_domain = Domainatrix.parse(URI.encode(crawl_link.url)).domain
        unless valid_domains.has_key?(site_domain)
          logger.info "Domain - '#{site_domain}' not registered in the system "
          next
        end

        url_protocol = crawl_link.url.split('://').first
        #if not crawl_link.recently_updated?
          html_content = `wget -qO- #{crawl_link.url}`
          update_result(crawl_link, html_content)
          site_url = "#{url_protocol}://#{url_host}"
        #end
        crawl_for_new_links(site_url, html_content)
        crawl_link.update_attribute(:crawl_status, "Available")
    end
    sleep(10)
    Monitoring.delay.assign_links
    puts "++++++++++++++++ DONE ++++++++++++++++++"
  end
...