Module: Ribbon::EventBus::Publishers::ResquePublisher::PublisherJob

Defined in:
lib/ribbon/event_bus/publishers/resque_publisher.rb

Overview

Class Methods

Class Method Summary collapse

Class Method Details

.perform(serialized_event, publisher_name = :resque) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/ribbon/event_bus/publishers/resque_publisher.rb', line 49

def self.perform(serialized_event, publisher_name=:resque)
  event = Event.deserialize(serialized_event)
  instance = event.instance

  publisher = instance.find_publisher(publisher_name)
  raise Errors::PublisherError, 'No ResquePublisher found' unless publisher
  queue_formatter = publisher.subscription_queue_formatter

  instance.plugins.perform(:resque_publish, event) do |event|
    event.subscriptions.each { |s|
      SubscriptionJob.set_queue(queue_formatter.call(s).to_sym)
      Resque.enqueue(SubscriptionJob, s.serialize, event.serialize)
    }
  end
end

.set_queue(queue) ⇒ Object



45
46
47
# File 'lib/ribbon/event_bus/publishers/resque_publisher.rb', line 45

def self.set_queue(queue)
  @queue = queue
end