Class: BarbequeClient::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/barbeque_client/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(application:, default_queue:, endpoint:, tracing: {}) ⇒ Client

Returns a new instance of Client.



6
7
8
9
10
11
# File 'lib/barbeque_client/client.rb', line 6

def initialize(application:, default_queue:, endpoint:, tracing: {})
  @application   = application
  @default_queue = default_queue
  @endpoint      = endpoint
  @tracing       = tracing || {}
end

Instance Method Details

#create_execution(job:, message:, queue: nil) ⇒ Faraday::Response

Parameters:

  • job (String)
    • Job name to enqueue.

  • message (Object)
    • An object which is serializable as JSON.

  • optional (String)

    queue - A queue name to enqueue a job.

Returns:

  • (Faraday::Response)


17
18
19
20
21
22
23
24
25
26
# File 'lib/barbeque_client/client.rb', line 17

def create_execution(job:, message:, queue: nil)
  params = {
    application: @application,
    job:         job,
    message:     message,
    queue:       queue || @default_queue,
  }
  result = garage_client.post('/v2/job_executions', params)
  result.response
end

#execution(message_id:, fields: nil) ⇒ Faraday::Response

Parameters:

  • message_id (String)
    • Job execution’s message_id to check status

  • optioanl (String)

    fields - Response fields specification for Garage

Returns:

  • (Faraday::Response)


42
43
44
45
46
47
48
49
# File 'lib/barbeque_client/client.rb', line 42

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) ⇒ Faraday::Response

Parameters:

  • message_id (String)
    • Job execution’s message_id to retry

  • delay_seconds (Integer) (defaults to: 0)
    • Retry delay in seconds. Maximum is 900s.

Returns:

  • (Faraday::Response)


31
32
33
34
35
36
37
# File 'lib/barbeque_client/client.rb', line 31

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