Я использую 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