Sha256: 6b0305520ebaef3766e59a69e88ca143901e8b092fc264e25efeed8753f6177f
Contents?: true
Size: 1.23 KB
Versions: 3
Compression:
Stored size: 1.23 KB
Contents
module DeliveryUncle class EmailQueue module ClassMethods def queue(request) return if not_allowed?(request) QueueRequest.new(request) end def pause(request) return if not_allowed?(request) request.save_status!(:paused) end def retry(request) return if not_allowed?(request) RetryRequest.new(request) end def not_allowed?(request) return true if request.blank? || request.sent? if Activity.blocked_mailers.include?(request.mailer) request.save_status!(:blocked) return true end return false end end extend ClassMethods protected class QueueRequest def initialize(request) request.save_status!(:enqueue) begin Resque.enqueue(DeliveryUncle::SendEmailRequest, request.id) rescue => e Rails.logger.error e.message Rails.logger.error e.backtrace.join("\n") request.save_status!(:error_on_enqueue) end end end class RetryRequest def initialize(request) request.save_status!(:retrying) QueueRequest.new(request) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems