diff options
| -rw-r--r-- | app/workers/events_worker.rb | 8 | ||||
| -rw-r--r-- | lib/tasks/rabbitmq.rake | 18 |
2 files changed, 24 insertions, 2 deletions
diff --git a/app/workers/events_worker.rb b/app/workers/events_worker.rb index 491ce87..fc3df31 100644 --- a/app/workers/events_worker.rb +++ b/app/workers/events_worker.rb @@ -1,9 +1,13 @@ +require 'json' + class EventsWorker include Sneakers::Worker from_queue "dashboard.events", env: nil - def work(raw_post) - Event.create!(raw_post) + def work(event_json) + logger.info event_json + event = Event.create!(JSON.parse(event_json)) + logger.info("Create Event: #{event.id}") ack! end end diff --git a/lib/tasks/rabbitmq.rake b/lib/tasks/rabbitmq.rake new file mode 100644 index 0000000..6c8e3d2 --- /dev/null +++ b/lib/tasks/rabbitmq.rake @@ -0,0 +1,18 @@ +namespace :rabbitmq do + desc "setup rabbitmq routing" + task setup: :environment do + require "bunny" + connection = Bunny.new + connection.start + channel = connection.create_channel + + # create exchange + exchange = channel.fanout("malwer.events") + + # get or create queue (note the durable setting) + queue = channel.queue("dashboard.events", durable: true) + # bind queue to exchange + queue.bind("malwer.events") + connection.close + end +end |
