Sha256: 4b8fac4a7d307905699cdf7e13243db405bce4f8525dd01f176f4f3a3ee99a25

Contents?: true

Size: 1.51 KB

Versions: 32

Compression:

Stored size: 1.51 KB

Contents

# frozen_string_literal: true

require 'active_job'
require "funktor/worker/funktor_options"

module ActiveJob
  module QueueAdapters
    # == Funktor adapter for Active Job
    #
    # To use Funktor set the queue_adapter config to +:funktor+.
    #
    #   Rails.application.config.active_job.queue_adapter = :funktor
    class FunktorAdapter
      def enqueue(job) # :nodoc:
        job.provider_job_id = Funktor.job_pusher.push({
          "worker"  => JobWrapper.to_s,
          "wrapped" => job.class,
          "queue"   => job.class.work_queue,
          "perform_at" => Time.now.utc,
          "worker_params"    => [ job.serialize ]
        })
      end

      def enqueue_at(job, timestamp) # :nodoc:
        time = Time.at(timestamp).utc
        job.provider_job_id = Funktor.job_pusher.push({
          "worker"  => JobWrapper.to_s,
          "wrapped" => job.class,
          "queue"   => job.class.work_queue,
          "perform_at" => time,
          "worker_params"    => [ job.serialize ]
        })
      end

      class JobWrapper #:nodoc:
        include Funktor::Worker

        def perform(job_data)
          Funktor.logger.debug "job_data = #{job_data.class} #{job_data}"
          if job_data.is_a?(Array)
            Funktor.logger.debug "it's an array"
            job_data = job_data.first
            Funktor.logger.debug "job_data = #{job_data.class} #{job_data}"
          end
          Base.execute job_data
        end
      end
    end
  end

  class Base
    include Funktor::Worker::FunktorOptions
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
funktor-0.7.30 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.29 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.28 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.27 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.26 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.25 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.24 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.23 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.22 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.21 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.20 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.19 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.18 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.17 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.16 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.15 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.14 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.13 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.12 lib/active_job/queue_adapters/funktor_adapter.rb
funktor-0.7.11 lib/active_job/queue_adapters/funktor_adapter.rb