class Sidekiq::Promise::ServerMiddleware

Public Instance Methods

call(worker, job, queue) { || ... } click to toggle source
# File lib/sidekiq/promise/server_middleware.rb, line 5
def call worker, job, queue
  job_dequeued job
  result = yield
  if thenable? result
    result.raise
    job_completed job, result.result
  else
    job_completed job, result
  end
rescue Exception => e
  job_errored job, e
  raise e
end

Private Instance Methods

thenable?(obj) click to toggle source
# File lib/sidekiq/promise/server_middleware.rb, line 21
def thenable? obj
  obj.respond_to?(:then) && obj.respond_to?(:fail)
end