Class: ActiveCrew::Backends::SidekiqBackend

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
lib/active_crew/backends/sidekiq_backend.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.contextObject



21
22
23
# File 'lib/active_crew/backends/sidekiq_backend.rb', line 21

def context
  Sidekiq::Processor::WORKER_STATE.dup[Sidekiq::Logging.tid]
end

.enqueue(name, invoker, context) ⇒ Object



7
8
9
10
11
# File 'lib/active_crew/backends/sidekiq_backend.rb', line 7

def enqueue(name, invoker, context)
  Sidekiq::Client.push 'class' => self,
                       'queue' => queue_name(name),
                       'args' => [YAML.dump([name, invoker, normalize(context)])]
end

.queue(command_name) ⇒ Object



17
18
19
# File 'lib/active_crew/backends/sidekiq_backend.rb', line 17

def queue(command_name)
  Sidekiq::Queue.new queue_name command_name
end

.queue_name(command_name) ⇒ Object



13
14
15
# File 'lib/active_crew/backends/sidekiq_backend.rb', line 13

def queue_name(command_name)
  command_name[/^(.*)\/[^\/]*$/, 1].underscore.gsub(/\//, '_')
end

Instance Method Details

#perform(context) ⇒ Object



32
33
34
# File 'lib/active_crew/backends/sidekiq_backend.rb', line 32

def perform(context)
  ActiveCrew::Backends.dequeue *YAML.load(context)
end