Class: Patella::SendLaterWorker
- Inherits:
-
Object
- Object
- Patella::SendLaterWorker
- Extended by:
- Resque::Plugins::Meta
- Defined in:
- lib/patella/send_later_worker.rb
Constant Summary collapse
- @@default_queue =
:send_later
- @@queues =
{}
Class Method Summary collapse
- .perform(class_name, instance_id, method_name, *args) ⇒ Object
- .perform_later(*args) ⇒ Object
- .queue_for(class_name, method_name) ⇒ Object
Class Method Details
.perform(class_name, instance_id, method_name, *args) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/patella/send_later_worker.rb', line 18 def self.perform(class_name, instance_id, method_name, *args) o = class_name.constantize o = o.find_by_id instance_id if instance_id o.send(method_name, *args) rescue => e raise e, "#{e.} \nWith SendLater: #{class_name}#{':'+instance_id.to_s if instance_id}##{method_name}(#{args.map(&:to_s).join(',')})", e.backtrace end |
.perform_later(*args) ⇒ Object
8 9 10 11 12 |
# File 'lib/patella/send_later_worker.rb', line 8 def self.perform_later(*args) # args[0] is class name of invoking class, args[2] is method queue = self.queue_for(args[0], args[2]) Resque::Job.create(queue, 'Patella::SendLaterWorker', *args) end |
.queue_for(class_name, method_name) ⇒ Object
14 15 16 |
# File 'lib/patella/send_later_worker.rb', line 14 def self.queue_for(class_name, method_name) @@queues[class_name.to_s].try(:[],method_name.to_s) || @@default_queue end |