You know it and you like it. Using Rails you can just declare your routes and create a controller. That's all you need to process requests.
With Msgr you can do the same for asynchronous AMQP messaging. Just define your routes, create your consumer and watch you app processing messages.
Note: Msgr is still under heavy development.
Add this line to your application's Gemfile:
gem 'msgr'
And then execute:
$ bundle
Or install it yourself as:
$ gem install msgr
After adding 'msgr' to your gemfile create a config/rabbitmq.yml
like this:
common: &common
uri: amqp://localhost/
test:
<<: *common
development:
<<: *common
production:
<<: *common
Specify your messaging routes in config/msgr.rb
:
route 'local.test.index', to: 'test#index'
route 'local.test.another_action', to: 'test#another_action'
Create your consumer in app/consumers
:
class TestConsumer < Msgr::Consumer
def index
data = { fuubar: 'abc' }
publish data, to: 'local.test.another_action'
end
def another_action
puts "#{payload.inspect}"
end
end
Use Msgr.publish
in to publish a message:
class TestController < ApplicationController
def index
@data = { abc: 'abc' }
Msgr.publish @data, to: 'local.test.index'
render nothing: true
end
end
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request