Module: Cabriolet::Parallel

Defined in:
lib/cabriolet/parallel.rb

Overview

Parallel extraction for multi-core performance

Defined Under Namespace

Classes: BatchProcessor, Extractor, ThreadPool

Class Method Summary collapse

Class Method Details

.extract(archive, output_dir, workers: Extractor::DEFAULT_WORKERS, **options) ⇒ Hash

Extract archive using parallel workers

Parameters:

  • archive (Object)

    Archive object

  • output_dir (String)

    Output directory

  • workers (Integer) (defaults to: Extractor::DEFAULT_WORKERS)

    Number of parallel workers

Returns:

  • (Hash)

    Extraction statistics



314
315
316
317
318
319
# File 'lib/cabriolet/parallel.rb', line 314

def extract(archive, output_dir, workers: Extractor::DEFAULT_WORKERS,
**options)
  extractor = Extractor.new(archive, output_dir, workers: workers,
                                                 **options)
  extractor.extract_all
end

.process_batch(paths, output_base, workers: Extractor::DEFAULT_WORKERS) ⇒ Hash

Process multiple archives in parallel

Parameters:

  • paths (Array<String>)

    Archive paths

  • output_base (String)

    Base output directory

  • workers (Integer) (defaults to: Extractor::DEFAULT_WORKERS)

    Number of parallel workers

Returns:

  • (Hash)

    Processing statistics



327
328
329
330
# File 'lib/cabriolet/parallel.rb', line 327

def process_batch(paths, output_base, workers: Extractor::DEFAULT_WORKERS)
  processor = BatchProcessor.new(workers: workers)
  processor.process_all(paths, output_base)
end