Class: Shoryuken::Manager

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/shoryuken/manager.rb

Constant Summary collapse

BATCH_LIMIT =
10
MIN_DISPATCH_INTERVAL =
0.1

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Util

#elapsed, #fire_event, #logger, #unparse_queues, #worker_name

Constructor Details

#initialize(group, fetcher, polling_strategy, concurrency, executor) ⇒ Manager

Returns a new instance of Manager.



11
12
13
14
15
16
17
18
19
# File 'lib/shoryuken/manager.rb', line 11

def initialize(group, fetcher, polling_strategy, concurrency, executor)
  @group            = group
  @fetcher          = fetcher
  @polling_strategy = polling_strategy
  @max_processors   = concurrency
  @busy_processors  = Concurrent::AtomicFixnum.new(0)
  @executor         = executor
  @running          = Concurrent::AtomicBoolean.new(true)
end

Instance Attribute Details

#groupObject (readonly)

Returns the value of attribute group.



9
10
11
# File 'lib/shoryuken/manager.rb', line 9

def group
  @group
end

Instance Method Details

#running?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/shoryuken/manager.rb', line 26

def running?
  @running.true? && @executor.running?
end

#startObject



21
22
23
24
# File 'lib/shoryuken/manager.rb', line 21

def start
  fire_utilization_update_event
  dispatch_loop
end