Module: Workers

Defined in:
lib/workers.rb,
lib/workers/pool.rb,
lib/workers/task.rb,
lib/workers/event.rb,
lib/workers/timer.rb,
lib/workers/worker.rb,
lib/workers/helpers.rb,
lib/workers/version.rb,
lib/workers/log_proxy.rb,
lib/workers/scheduler.rb,
lib/workers/task_group.rb,
lib/workers/periodic_timer.rb,
lib/workers/bucket_scheduler.rb

Defined Under Namespace

Modules: Helpers Classes: BucketScheduler, Event, LogProxy, PeriodicTimer, Pool, Scheduler, Task, TaskGroup, Timer, Worker

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.lock(&block) ⇒ Object



51
52
53
# File 'lib/workers.rb', line 51

def self.lock(&block)
  (@lock ||= Monitor.new).synchronize { yield if block_given? }
end

.map(inputs, options = {}, &block) ⇒ Object



45
46
47
48
49
# File 'lib/workers.rb', line 45

def self.map(inputs, options = {}, &block)
  return Workers::TaskGroup.new.map(inputs, options) do |i|
    yield(i)
  end
end

.poolObject



19
20
21
22
23
# File 'lib/workers.rb', line 19

def self.pool
  lock do
    return @pool ||= Workers::Pool.new
  end
end

.pool=(val) ⇒ Object



25
26
27
28
29
30
# File 'lib/workers.rb', line 25

def self.pool=(val)
  lock do
    @pool.dispose if @pool
    @pool = val
  end
end

.schedulerObject



32
33
34
35
36
# File 'lib/workers.rb', line 32

def self.scheduler
  lock do
    return @scheduler ||= Workers::Scheduler.new
  end
end

.scheduler=(val) ⇒ Object



38
39
40
41
42
43
# File 'lib/workers.rb', line 38

def self.scheduler=(val)
  lock do
    @scheduler.dispose if @scheduler
    @scheduler = val
  end
end