Chopin2001 Ответов: 0

Как я могу сканировать rss-канал без проблем с жестким диском?


My web program is an RSS reader. This program fetches new updates from multiple RSS feed sites and stores them on the mariadb disk. The address is about 20,000. And The index content is the feed content URL. Once content has been updated via this index, it will not be saved when saved. The problem is that this kind of crawling is burdensome to the hard disk and crashes in a few days. How can I crawl hard disks for less?
System:
4 GB of memory. 
Crawled and stored url content is 60 million.
The data capacity is over 60 gb. 
Database Engine is MyIsam not InnoDB. 


Что я уже пробовал:

function detect($link, $url_id){
   $conn = connect();                                                                                                                
   try{        
  /* link is index */                                                                                                                      
        $result = $conn->query ("SELECT link from wc_xml_post where link='".realEncode( $conn , $link )."' and url_id='".$url_id."'");                                                                                                                                     
   if( !$result )                                                                                                                    
       throw new Exception("Database access failed: " . mysqli_error($conn), 16);                                                    
   }catch( Exception $e ){                                                                                                           
       $message = $e->getMessage()." ".$e->getLine();                                                                                
        writeLog($e->getMessage(), $e->getCode);                                                                                      
        return false;                                                                                                                 
  }                                                                                                                                 
                                                                                                                                      
  if( mysqli_num_rows( $result ) ){                                                                                                 
       $result = mysqli_fetch_assoc( $result );                                                                                      
       echo "\033[31mCrawled\033[0m ".$result['link']."\n";                                                                          
      return true;                                                                                                                  
  }else{                                                                                                                            
        return false;                                                                                                                 
  }      
}    

Richard Deeming

Если вы хотите, чтобы кто-то помог вам исправить ваш код, то вам нужно показать нам соответствующие части вашего кода.

Нажмите зеленую ссылку "улучшить вопрос" и обновите свой вопрос соответствующими частями кода, а также полной информацией об исключениях, которые вы получаете. Не забудьте указать, из какой строки кода выбрасывается исключение.

0 Ответов