Module: ResqueSerializer::MonkeyPatches::Resque
- Included in:
- Resque
- Defined in:
- lib/resque-serializer/monkey_patches/resque.rb
Instance Method Summary collapse
-
#pop(queue) ⇒ Object
NOTE: ‘Resque#pop` is called when working queued jobs via the `resque:work` rake task.
Instance Method Details
#pop(queue) ⇒ Object
NOTE: ‘Resque#pop` is called when working queued jobs via the `resque:work` rake task. Resque’s default implementation will not trigger the ‘before_dequeue` or `after_dequeue` hooks; this patch will force it do so.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/resque-serializer/monkey_patches/resque.rb', line 8 def pop(queue) return unless (job_details = decode(data_store.pop_from_queue(queue))) klass = job_details['class'].safe_constantize args = job_details['args'] # Perform before_dequeue hooks. Don't perform dequeue if any hook # returns false # rubocop:disable Metrics/LineLength before_hooks = ::Resque::Plugin.before_dequeue_hooks(klass).collect do |hook| klass.send(hook, *args) end return job_details if before_hooks.any? { |result| result == false } ::Resque::Plugin.after_dequeue_hooks(klass).each do |hook| klass.send(hook, *args) end job_details end |