app/models/concerns/external_services/action.rb in external_services-0.3.1 vs app/models/concerns/external_services/action.rb in external_services-0.4.0

- old
+ new

@@ -1,9 +1,11 @@ module ExternalServices module Action extend ActiveSupport::Concern + QUEUE_PREFIX = 'external_services' + included do scope :processed, -> { where.not(processed_at: nil) } scope :unprocessed, -> { where(processed_at: nil) } after_commit :kick_active_job @@ -20,15 +22,27 @@ def execute! raise NotImplementedError end def kick_active_job - return if processed? || api_disabled? + # return if processed? || api_disabled? - job_class.set(queue: queue).perform_later(id) + job_class.set(queue: prefixed_queue).perform_later(id) end + def prefixed_queue + [QUEUE_PREFIX, queue].join('__') + end + module ClassMethods + def clear_sidekiq_queues + Sidekiq.redis do |conn| + conn.keys.select { |k| k.include?(QUEUE_PREFIX) }.each do |k| + conn.del k + end + end + end + def perform_unprocessed Rails.logger.info "Running unprocessed #{self.class.name.demodulize} api actions..." unprocessed.each(&:kick_active_job) end