Sha256: 1014440ad330c1229db080a55f2283d88ebfc1b0bfa1dc2e7b43149f74bb1898

Contents?: true

Size: 1.11 KB

Versions: 27

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

require "active_job/queue_adapters/sidekiq_adapter"

module ActiveJob
  module QueueAdapters
    # To use SidekiqPublisher set the queue_adapter config to +:sidekiq_publisher+.
    #   Rails.application.config.active_job.queue_adapter = :sidekiq_publisher
    class SidekiqPublisherAdapter
      JOB_WRAPPER_CLASS = ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper.to_s.freeze

      def enqueue(job)
        internal_enqueue(job)
      end

      def enqueue_at(job, timestamp)
        internal_enqueue(job, timestamp)
      end

      private

      def internal_enqueue(job, timestamp = nil)
        job.provider_job_id = SidekiqPublisher::Job.generate_sidekiq_jid
        attributes = job_attributes(job)
        attributes[:run_at] = timestamp if timestamp.present?
        SidekiqPublisher::Job.create!(attributes).job_id
      end

      def job_attributes(job)
        {
          job_id: job.provider_job_id,
          job_class: JOB_WRAPPER_CLASS,
          wrapped: job.class.to_s,
          queue: job.queue_name,
          args: [job.serialize],
        }
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
sidekiq_publisher-1.8.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.8.0.rc0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.7.1 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.7.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.7.0.rc1 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.7.0.rc0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.6.4 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.6.3 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.6.2 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.6.1 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.6.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.6.0.pre0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.5.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.4.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.4.0.rc0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.3.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.2.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.1.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-1.0.0 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb
sidekiq_publisher-0.3.3 lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb