Module: RisingDragon::SQS::Worker::ClassMethods

Defined in:
lib/rising_dragon/sqs/worker.rb

Instance Method Summary collapse

Instance Method Details

#emitterObject



35
36
37
# File 'lib/rising_dragon/sqs/worker.rb', line 35

def emitter
  @emitter ||= ::RisingDragon::SQS::Emitter.new
end

#register_queue(sqs_queue_name, group_name, option) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/rising_dragon/sqs/worker.rb', line 19

def register_queue(sqs_queue_name, group_name, option)
  concurrency = option[:concurrency] || 25
  Shoryuken.add_group(group_name, concurrency)

  weight = option[:weight] || 1
  Shoryuken.add_queue(sqs_queue_name, weight, group_name)
end

#rising_dragon_ignore(event_name) ⇒ Object



31
32
33
# File 'lib/rising_dragon/sqs/worker.rb', line 31

def rising_dragon_ignore(event_name)
  emitter.ignore(event_name)
end

#rising_dragon_options(sqs_queue_name, group_name, opt = {}) ⇒ Object



12
13
14
15
16
17
# File 'lib/rising_dragon/sqs/worker.rb', line 12

def rising_dragon_options(sqs_queue_name, group_name, opt = {})
  shoryuken_opt = { queue: sqs_queue_name, body_parser: :json, auto_delete: true }.merge(opt)
  shoryuken_options(shoryuken_opt)

  register_queue(sqs_queue_name, group_name, opt)
end

#rising_dragon_register(event_name, handle_class) ⇒ Object



27
28
29
# File 'lib/rising_dragon/sqs/worker.rb', line 27

def rising_dragon_register(event_name, handle_class)
  emitter.register(event_name, handle_class)
end