Class: Namira::Async::Performer

Inherits:
Object
  • Object
show all
Defined in:
lib/namira/async/performer.rb

Class Method Summary collapse

Class Method Details

.perform(payload) ⇒ Object



26
27
28
29
30
# File 'lib/namira/async/performer.rb', line 26

def perform(payload)
  request = Namira::Async::Serializer.unserialize_request(payload)
  request.send_request
  Namira::Async::Serializer.serialize_response(request.response)
end

.schedule(request, async_adapter, queue_name) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/namira/async/performer.rb', line 9

def schedule(request, async_adapter, queue_name)
  async_adapter = adapter(async_adapter)
  queue_name ||= Namira.config.async_queue_name
  payload = Namira::Async::Serializer.serialize_request(request)

  case async_adapter
  when :active_job
    Namira::Async::ActiveJob::RequestJob.set(queue: queue_name).perform_later(payload)
  when :sidekiq
    Namira::Async::Sidekiq::RequestWorker.set(queue: queue_name).perform_async(payload)
  when :thread
    Thread.new { perform(payload) }
  else
    raise Namira::Errors::AsyncError, "Unknown Async Adapter #{async_adapter}"
  end
end