Module: Omnizip::Parallel
- Defined in:
- lib/omnizip/parallel.rb,
lib/omnizip/parallel/engine.rb,
lib/omnizip/parallel/job_queue.rb,
lib/omnizip/parallel/worker_pool.rb,
lib/omnizip/parallel/job_scheduler.rb,
lib/omnizip/parallel/parallel_extractor.rb,
lib/omnizip/parallel/parallel_compressor.rb
Overview
Parallel processing module for multi-threaded compression/extraction
Leverages Fractor for parallel processing to utilize multi-core CPUs. Provides high-level APIs for parallel compression and extraction operations.
Defined Under Namespace
Classes: ClosedQueueError, Engine, JobQueue, JobScheduler, ParallelCompressor, ParallelExtractor, WorkerPool
Class Attribute Summary collapse
-
.config ⇒ Object
Global configuration.
Class Method Summary collapse
-
.compress_directory(dir, output, **options) ⇒ String
Compress directory in parallel.
-
.configure {|config| ... } ⇒ void
Configure parallel processing globally.
-
.default_config ⇒ Omnizip::Models::ParallelOptions
Get default configuration.
-
.extract_archive(archive, dest, **options) ⇒ Array<String>
Extract archive in parallel.
-
.reset_config ⇒ void
Reset configuration to defaults.
-
.setup_default_config ⇒ Object
Initialize default configuration.
Class Attribute Details
.config ⇒ Object
Global configuration
35 36 37 |
# File 'lib/omnizip/parallel.rb', line 35 def config @config end |
Class Method Details
.compress_directory(dir, output, **options) ⇒ String
Compress directory in parallel
71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/omnizip/parallel.rb', line 71 def compress_directory(dir, output, **) threads = .delete(:threads) || @config&.threads compressor = ParallelCompressor.new(@config, threads: threads) result = compressor.compress(dir, output, **) # Print stats if verbose if [:verbose] || @config&.verbose stats = compressor.statistics print_stats("Compression", stats) end result end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Configure parallel processing globally
49 50 51 52 53 54 |
# File 'lib/omnizip/parallel.rb', line 49 def configure @config ||= Omnizip::Models::ParallelOptions.new yield @config if block_given? @config.validate! @config end |
.default_config ⇒ Omnizip::Models::ParallelOptions
Get default configuration
117 118 119 |
# File 'lib/omnizip/parallel.rb', line 117 def default_config @default_config ||= Omnizip::Models::ParallelOptions.new end |
.extract_archive(archive, dest, **options) ⇒ Array<String>
Extract archive in parallel
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/omnizip/parallel.rb', line 99 def extract_archive(archive, dest, **) threads = .delete(:threads) || @config&.threads extractor = ParallelExtractor.new(@config, threads: threads) result = extractor.extract(archive, dest, **) # Print stats if verbose if [:verbose] || @config&.verbose stats = extractor.statistics print_stats("Extraction", stats) end result end |
.reset_config ⇒ void
This method returns an undefined value.
Reset configuration to defaults
124 125 126 |
# File 'lib/omnizip/parallel.rb', line 124 def reset_config @config = Omnizip::Models::ParallelOptions.new end |
.setup_default_config ⇒ Object
Initialize default configuration
149 150 151 |
# File 'lib/omnizip/parallel.rb', line 149 def self.setup_default_config @config = Omnizip::Models::ParallelOptions.new end |