class Namira::Async::Performer
Public Class Methods
perform(payload)
click to toggle source
# 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)
click to toggle source
# 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
Private Class Methods
adapter(async_adapter)
click to toggle source
# File lib/namira/async/performer.rb, line 34 def adapter(async_adapter) async_adapter ||= Namira.config.async_adapter if async_adapter == :active_job && !defined?(ActiveJob) adapter(:sidekiq) elsif async_adapter == :sidekiq && !defined?(Sidekiq) adapter(:thread) else async_adapter end end