0.02
No release in over 3 years
Low commit activity in last 3 years
Barbeque client for Ruby
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.11
>= 0
~> 5.1
~> 10.0
~> 3.0

Runtime

 Project Readme

BarbequeClient Build Status

Barbeque client for Ruby.

Installation

Add this line to your application's Gemfile:

gem 'barbeque_client'

And create "config/initializers/barbeque.rb" and edit it like:

BarbequeClient.configure do |config|
  config.application   = 'cookpad'
  config.default_queue = 'default'
  config.endpoint      = 'https://barbeque.example.com'
  config.headers = { 'Host' => 'barbeque' } # optional
end

Usage

Enqueuing a job

execution = BarbequeClient.enqueue(
  job:     'NotifyAuthor',       # @param [String] job     - Job name to enqueue.
  message: { user_id: 7553989 }, # @param [Object] message - An object which is serializable as JSON.
  queue:   'default',            # @param optional [String] queue - A queue name to enqueue a job.
  delay_seconds: 0,              # @param optional [Integer] delay_seconds - Message timer of SQS.
)
execution.message_id #=> "a3c653c1-335e-4d4d-a6f9-eb91c0253d02"
execution.status     #=> "pending"

Polling the job's status

message_id = "a3c653c1-335e-4d4d-a6f9-eb91c0253d02"
BarbequeClient.status(message_id: message_id) #=> "success"

With Rails

Barbeque client has adapter for ActiveJob.

# config/environments/some_environment.rb
Rails.application.config.active_job.queue_adapter = :barbeque

And everything will be ok. Don't forget to setup config.application and config.endpoint in somewhere. One more thing, config.default_queue option is meaningless with Rails. default_queue is the fallback option for enqueueing without specified queue name. However, ActiveJob always set default queue as 'default' internally, there is no place to work on. So please use queue_as when you want to use different queue name.

Distributed tracing

Configure tracing option. Pick one of supported tracers. See more detail in https://github.com/cookpad/garage_client#tracing.

BarbequeClient.configure do |config|
  # ...
  config.tracing = { tracer: 'aws-xray', service: 'barbeque' }
end