Class: CDC::Concurrent::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/cdc/concurrent/configuration.rb

Overview

Immutable configuration for concurrent runtimes.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(concurrency: 100, timeout: nil, preserve_order: true) ⇒ Configuration

Returns a new instance of Configuration.

Parameters:

  • concurrency (Integer) (defaults to: 100)

    maximum concurrent tasks.

  • timeout (Float, nil) (defaults to: nil)

    optional timeout.

  • preserve_order (Boolean) (defaults to: true)

    whether batch results preserve input order.

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
19
20
# File 'lib/cdc/concurrent/configuration.rb', line 12

def initialize(concurrency: 100, timeout: nil, preserve_order: true)
  raise ArgumentError, "concurrency must be an Integer" unless concurrency.is_a?(Integer)
  raise ArgumentError, "concurrency must be greater than zero" unless concurrency.positive?

  @concurrency = concurrency
  @timeout = timeout
  @preserve_order = preserve_order
  freeze
end

Instance Attribute Details

#concurrencyObject (readonly)

Returns the value of attribute concurrency.



7
8
9
# File 'lib/cdc/concurrent/configuration.rb', line 7

def concurrency
  @concurrency
end

#preserve_orderObject (readonly)

Returns the value of attribute preserve_order.



7
8
9
# File 'lib/cdc/concurrent/configuration.rb', line 7

def preserve_order
  @preserve_order
end

#timeoutObject (readonly)

Returns the value of attribute timeout.



7
8
9
# File 'lib/cdc/concurrent/configuration.rb', line 7

def timeout
  @timeout
end