class BarbequeClient::Client

Public Class Methods

new(application:, default_queue:, endpoint:, tracing: {}, headers: nil) click to toggle source
# File lib/barbeque_client/client.rb, line 6
def initialize(application:, default_queue:, endpoint:, tracing: {}, headers: nil)
  @application   = application
  @default_queue = default_queue
  @endpoint      = endpoint
  @tracing       = tracing || {}
  @headers = headers
end

Public Instance Methods

create_execution(job:, message:, queue: nil, delay_seconds: nil) click to toggle source

@param [String] job - Job name to enqueue. @param [Object] message - An object which is serializable as JSON. @param optional [String] queue - A queue name to enqueue a job. @param optional [Integer] delay_seconds - Message timer of SQS. @return [Faraday::Response]

# File lib/barbeque_client/client.rb, line 19
def create_execution(job:, message:, queue: nil, delay_seconds: nil)
  params = {
    application: @application,
    job:         job,
    message:     message,
    queue:       queue || @default_queue,
    delay_seconds: delay_seconds,
  }
  result = garage_client.post('/v2/job_executions', params)
  result.response
end
execution(message_id:, fields: nil) click to toggle source

@param [String] message_id - Job execution's message_id to check status @param optioanl [String] fields - Response fields specification for Garage @return [Faraday::Response]

# File lib/barbeque_client/client.rb, line 45
def execution(message_id:, fields: nil)
  params = {}
  if fields
    params[:fields] = fields
  end
  result = garage_client.get("/v1/job_executions/#{message_id}", params)
  result.response
end
retry_execution(message_id:, delay_seconds: 0) click to toggle source

@param [String] message_id - Job execution's message_id to retry @param [Integer] delay_seconds - Retry delay in seconds. Maximum is 900s. @return [Faraday::Response]

# File lib/barbeque_client/client.rb, line 34
def retry_execution(message_id:, delay_seconds: 0)
  result = garage_client.post(
    "/v1/job_executions/#{message_id}/retries",
    delay_seconds: delay_seconds,
  )
  result.response
end

Private Instance Methods

garage_client() click to toggle source
# File lib/barbeque_client/client.rb, line 56
def garage_client
  @garage_client ||= GarageClient::Client.new(garage_client_option)
end
garage_client_option() click to toggle source
# File lib/barbeque_client/client.rb, line 60
def garage_client_option
  option = { endpoint: @endpoint, path_prefix: '/' }
  option[:tracing] = @tracing if @tracing[:tracer]
  if @headers
    option[:headers] = @headers
  end
  option
end