Module: DbBackgroundJob

Defined in:
lib/db_background_job.rb,
lib/db_background_job/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.spawn(&block) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/db_background_job.rb', line 8

def self.spawn(&block)
  with_db_connection do
    pid = Process.fork do
      setup_child(&block)
    end
    Process.detach(pid)
  end
end

.spawn_and_wait(&block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/db_background_job.rb', line 17

def self.spawn_and_wait(&block)
  with_db_connection do
    pid = Process.fork do
      begin
        setup_child(&block)
        exit(0)
      rescue Exception => e
        puts "Error in background job: #{e.inspect}"
        exit(1)
      end
    end
    _, status = Process.wait2(pid)
    status.exitstatus
  end
end