Sha256: d25ed8c0af21494ef1010800e9588386d1a075f72454837e2075b82331e9dfcc
Contents?: true
Size: 1.05 KB
Versions: 6
Compression:
Stored size: 1.05 KB
Contents
# Borrowed from: # https://github.com/jeremy/resque-rails/blob/master/lib/resque/rails/queue.rb module Sufia module Resque class Queue attr_reader :default_queue_name def initialize(default_queue_name) @default_queue_name = default_queue_name end def push(job) push_tries = 0 queue = job.respond_to?(:queue_name) ? job.queue_name : default_queue_name begin ::Resque.enqueue_to queue, MarshaledJob, Base64.encode64(Marshal.dump(job)) rescue Redis::CannotConnectError ActiveFedora::Base.logger.error "Redis is down!" rescue Redis::TimeoutError => error ActiveFedora::Base.logger.warn "Redis Timed out. Trying again! #{job.inspect}" push_tries += 1 # fail for good if the tries is greater than 3 raise error if push_tries >= 3 sleep 0.01 retry end end end class MarshaledJob def self.perform(marshaled_job) Marshal.load(Base64.decode64(marshaled_job)).run end end end end
Version data entries
6 entries across 6 versions & 1 rubygems