RabbitMQ JRuby Client ===================== rabbitmq-jruby-client allows you to use RabbitMQ Client from JRuby using the official Java RabbitMQ client from Rabbit Technologies See more at http://www.rabbitmq.com Getting Started =============== 1. Install and start RabbitMQ (see below) 2. Install JRuby RabbitMQ Client: jruby -S gem install rabbitmq-jruby-client Example Usage ============= gem 'rabbitmq-jruby-client' require 'rabbitmq_client' # Initializes the new client and connect to the server client = RabbitMQClient.new # Initializes a new queue queue = client.queue('queue_name') # Initializes a new exchange exchange = client.exchange('exchange_name') # Connects queue with the exchange queue.bind(exchange) # Publish a message to the queue queue.publish('message body') # Retrieve a message from the queue message = queue.retrieve # Subscribe to a queue with callback. (Event-driven) queue.subscribe do |message| # do something with message end # Subscribe to a queue in a loop. (Polling) queue.loop_subscribe do |message| # do something with message end Installing RabbitMQ on OS X =========================== 1. Install MacPorts 2. sudo port install rabbitmq-server To run RabbitMQ 3. sudo rabbitmq-server Marshalling =========== By default standard ruby marshalling is used to serialise data but this can be overridden by using a marshalling class which responds to two method calls: 1) load takes an array of java bytes and returns whatever you desrialise from this 2) dump takes a message and must produce an array of java bytes, a RabbitMQClientError is raised if the output is not a suitable array The marshalling class can be set in several ways: 1. By instantiating a RabbitMQClient with a option of :marshaller set to the class you wish use as your default marshaller 2. By setting the 3rd argument of RabbitMQClient#queue to the class you wish to use for this queue 3. By instantiating a RabbitMQClient::QueueConsumer with a 3rd argument of the class you wish to use 4. By using RabbitMQClient#marshaller= 5. By using RabbitMQClient::Queue#marshaller=
Project
jessica
A RabbitMQ client for JRubywith some AMQP gem api compatibility
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Pull Requests
Development
Dependencies
Project Readme