Beispiel #1
0
 protected function doExecute(\SplObjectStorage $process_group, ImporterInterface $importer, SourceInterface $source, $num_processes, $config)
 {
     $script_path = DEVOUR_COMMAND_START_DIR . '/batch.php';
     do {
         $this->limitProcess($process_group, $num_processes);
         if ($importer->getTransporter()->runInNewProcess()) {
             $args = ['php', $script_path, 'transport', $config, $source];
             $builder = new ProcessBuilder($args);
             $process = $builder->getProcess();
             $process->start();
             $process_group->attach($process);
             return;
         } else {
             $stream = $importer->transport($source);
             $args = ['php', $script_path, 'parse', $config, $source, $stream->getMetadata('uri')];
         }
         $builder = new ProcessBuilder($args);
         $process = $builder->getProcess();
         $process->start();
         $process_group->attach($process);
     } while ($importer->getTransporter()->progress($source) != ProgressInterface::COMPLETE);
 }