server/src/app/Console/Commands/ImportCocoonRDF.php
changeset 172 660570f13537
parent 118 dbcacab69cfc
child 322 084aae09edf4
equal deleted inserted replaced
171:f4f558f04f37 172:660570f13537
    95         $progressBar = $this->output->createProgressBar($recs->getTotalRecordsInCollection());
    95         $progressBar = $this->output->createProgressBar($recs->getTotalRecordsInCollection());
    96         $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
    96         $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
    97 
    97 
    98         $insertTimeouts = 0;
    98         $insertTimeouts = 0;
    99 
    99 
   100         $documentCounts = ['all' => 0, 'unknown' => 0];
   100         $documentCounts = ['all' => 0, 'unknown' => 0, 'error' => 0];
   101 
   101 
   102         foreach ($recs as $item) {
   102         foreach ($recs as $item) {
   103 
   103 
   104             $identifier = (string) $item->xpath('/record/header/identifier')[0];
   104             $identifier = (string) $item->xpath('/record/header/identifier')[0];
   105             $docRdfUrl = Config::get('corpusparole.cocoon_rdf_base_uri').substr($identifier, strlen(Config::get('corpusparole.cocoon_doc_id_base')));
   105             $docRdfUrl = Config::get('corpusparole.cocoon_rdf_base_uri').substr($identifier, strlen(Config::get('corpusparole.cocoon_doc_id_base')));
   128                 catch(\Exception $e) {
   128                 catch(\Exception $e) {
   129                     $code = $e->getCode();
   129                     $code = $e->getCode();
   130                     $message = $e->getMessage();
   130                     $message = $e->getMessage();
   131                     $this->info("\nError processing $identifier. code : $code, message: $message");
   131                     $this->info("\nError processing $identifier. code : $code, message: $message");
   132                     Log::debug("Error processing $identifier. code : $code, message: $message");
   132                     Log::debug("Error processing $identifier. code : $code, message: $message");
   133                     if($code == 0 && stripos($message, 'timed out')>=0 ) {
   133                     if($code == 400 || ($code == 0 && stripos($message, 'timed out')>=0) ) {
   134                         $this->info("\nTimeout error processing $identifier ($docRdfUrl) : $e, retrying");
   134                         $this->info("\nTimeout error processing $identifier ($docRdfUrl) : $e, retrying");
   135                         Log::warning("Timeout error processing $identifier ($docRdfUrl) : $e, retrying");
   135                         Log::warning("Timeout error processing $identifier ($docRdfUrl) : $e, retrying");
   136                         continue;
   136                         continue;
   137                     }
   137                     }
   138                     else {
   138                     else {
   142                     }
   142                     }
   143                     //$this->error(print_r($e->getTraceAsString(),true));
   143                     //$this->error(print_r($e->getTraceAsString(),true));
   144                 }
   144                 }
   145             }
   145             }
   146             if(!$docLoaded) {
   146             if(!$docLoaded) {
       
   147                 $documentCounts['error'] += 1;
   147                 continue;
   148                 continue;
   148             }
   149             }
   149 
   150 
   150             //insert raw
   151             //insert raw
   151             if($raw) {
   152             if($raw) {
   247         $progressBar->setMessage("finished");
   248         $progressBar->setMessage("finished");
   248         $progressBar->finish();
   249         $progressBar->finish();
   249 
   250 
   250         $this->info("\nDocument count info: ");
   251         $this->info("\nDocument count info: ");
   251         foreach ($documentCounts as $docType => $docCount) {
   252         foreach ($documentCounts as $docType => $docCount) {
   252             $this->info("$docType => $docCount");
   253             if($docType == 'error' && $docCount > 0) {
       
   254                 $this->error("$docType => $docCount");
       
   255             } else {
       
   256                 $this->info("$docType => $docCount");
       
   257             }
   253         }
   258         }
   254     }
   259     }
   255 }
   260 }