Class: Delayed::Master::Forker

Inherits:
Object
  • Object
show all
Defined in:
lib/delayed/master/forker.rb

Instance Method Summary collapse

Constructor Details

#initialize(master) ⇒ Forker

Returns a new instance of Forker.



8
9
10
11
12
# File 'lib/delayed/master/forker.rb', line 8

def initialize(master)
  @master = master
  @config = master.config
  @callbacks = master.callbacks
end

Instance Method Details

#call(worker) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/delayed/master/forker.rb', line 14

def call(worker)
  around_fork(worker) do
    @callbacks.run(:before_fork, @master, worker)
    worker.pid = fork do
      @callbacks.run(:after_fork, @master, worker)
      after_fork_at_child(worker)
      worker.pid = Process.pid
      worker.instance = create_instance(worker)
      worker.instance.start
    end
  end
end