Sha256: 4acc6bc8f3a71f9419dafc8f776ae40ed4b4cf26658a5ac12b72b00248a13091

Contents?: true

Size: 1.58 KB

Versions: 80

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

module GoodJob # :nodoc:
  # Extends GoodJob module to track Rails boot dependencies.
  module Dependencies
    extend ActiveSupport::Concern

    included do
      # @!attribute [rw] _rails_after_initialize_hook_called
      #   @!scope class
      #   Whether Railtie.after_initialize has been called yet (default: +false+).
      #   This will be set on  but before +Rails.application.initialize?+ is +true+.
      #   @return [Boolean]
      mattr_accessor :_rails_after_initialize_hook_called, default: false

      # @!attribute [rw] _active_job_loaded
      #   @!scope class
      #   Whether ActiveJob has loaded (default: +false+).
      #   @return [Boolean]
      mattr_accessor :_active_job_loaded, default: false

      # @!attribute [rw] _active_record_loaded
      #   @!scope class
      #   Whether ActiveRecord has loaded (default: +false+).
      #   @return [Boolean]
      mattr_accessor :_active_record_loaded, default: false
    end

    class_methods do
      # Whether GoodJob's  has been initialized as of the calling of +Railtie.after_initialize+.
      # @return [Boolean]
      def async_ready?
        Rails.application.initialized? || (
           _rails_after_initialize_hook_called &&
           _active_job_loaded &&
           _active_record_loaded
         )
      end

      def start_async_adapters
        return unless async_ready?

        GoodJob::Adapter.instances
                        .select(&:execute_async?)
                        .reject(&:async_started?)
                        .each(&:start_async)
      end
    end
  end
end

Version data entries

80 entries across 80 versions & 1 rubygems

Version Path
good_job-3.9.0 lib/good_job/dependencies.rb
good_job-3.8.0 lib/good_job/dependencies.rb
good_job-3.7.4 lib/good_job/dependencies.rb
good_job-3.7.3 lib/good_job/dependencies.rb
good_job-3.7.2 lib/good_job/dependencies.rb
good_job-3.7.1 lib/good_job/dependencies.rb
good_job-3.7.0 lib/good_job/dependencies.rb
good_job-3.6.2 lib/good_job/dependencies.rb
good_job-3.6.1 lib/good_job/dependencies.rb
good_job-3.6.0 lib/good_job/dependencies.rb
good_job-3.5.1 lib/good_job/dependencies.rb
good_job-3.5.0 lib/good_job/dependencies.rb
good_job-3.4.8 lib/good_job/dependencies.rb
good_job-3.4.7 lib/good_job/dependencies.rb
good_job-3.4.6 lib/good_job/dependencies.rb
good_job-3.4.5 lib/good_job/dependencies.rb
good_job-3.4.4 lib/good_job/dependencies.rb
good_job-3.4.3 lib/good_job/dependencies.rb
good_job-3.4.2 lib/good_job/dependencies.rb
good_job-3.4.1 lib/good_job/dependencies.rb