Sha256: 6958e72d64afb83f33fc0470a48b26b2a70001c67816fd29feafdd900b6d59f5

Contents?: true

Size: 1.35 KB

Versions: 2

Compression:

Stored size: 1.35 KB

Contents

require 'barbeque_client/configuration'
require 'barbeque_client/client'
require 'barbeque_client/version'
require 'barbeque_client/executor'

begin
  require 'rails'
rescue LoadError
else
  require 'barbeque_client/railtie'
end

module BarbequeClient
  class << self
    def configure
      yield config
    end

    def config
      @config ||= Configuration.new
    end

    # @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.
    # @return [Hashie::Mash] resonse - { message_id: String, status: String }
    def enqueue(job:, message:, queue: nil)
      response = client.create_execution(
        job:     job,
        message: message,
        queue:   queue,
      )
      response.body
    end

    # @param  [String] message_id - Job execution's message_id to check status
    # @return [String] status     - Job execution's status like "success", "pending", "failure", ...
    def status(message_id:)
      response = client.execution(message_id: message_id)
      response.body.status
    end

    def client
      @client ||= Client.new(
        application:   config.application,
        default_queue: config.default_queue,
        endpoint:      config.endpoint,
        tracing:       config.tracing,
      )
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
barbeque_client-0.9.1 lib/barbeque_client.rb
barbeque_client-0.9.0 lib/barbeque_client.rb