Class: Sqskiq::Processor

Inherits:
Object
  • Object
show all
Includes:
Celluloid, Celluloid::Notifications
Defined in:
lib/sqskiq/process.rb

Instance Method Summary collapse

Constructor Details

#initialize(worker_class) ⇒ Processor

Returns a new instance of Processor.



9
10
11
12
13
# File 'lib/sqskiq/process.rb', line 9

def initialize(worker_class)
  @worker_instance = worker_class.new

  subscribe_interrupt
end

Instance Method Details

#interrupt(signal) ⇒ Object



31
32
33
# File 'lib/sqskiq/process.rb', line 31

def interrupt(signal)
  self.terminate
end

#process(message) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/sqskiq/process.rb', line 15

def process(message)
  result = true
  begin
    @worker_instance.perform(message)
  rescue Exception => e
    result = false
  end
  { :success => result, :message => message }
end

#subscribe_interruptObject



25
26
27
28
29
# File 'lib/sqskiq/process.rb', line 25

def subscribe_interrupt
  subscribe('SIGINT', :interrupt)
  subscribe('TERM', :interrupt)
  subscribe('SIGTERM', :interrupt)
end