module Announcer::Publishers::ResquePublisher::PublisherJob

Public Class Methods

perform(serialized_event, publisher_name=:resque) click to toggle source
# File lib/announcer/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) click to toggle source
# File lib/announcer/publishers/resque_publisher.rb, line 45
def self.set_queue(queue)
  @queue = queue
end