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.15.2 lib/good_job/dependencies.rb
good_job-3.15.1 lib/good_job/dependencies.rb
good_job-3.15.0 lib/good_job/dependencies.rb
good_job-3.14.2 lib/good_job/dependencies.rb
good_job-3.14.1 lib/good_job/dependencies.rb
good_job-3.14.0 lib/good_job/dependencies.rb
good_job-3.13.0 lib/good_job/dependencies.rb
good_job-3.12.8 lib/good_job/dependencies.rb
good_job-3.12.7 lib/good_job/dependencies.rb
good_job-3.12.6 lib/good_job/dependencies.rb
good_job-3.12.5 lib/good_job/dependencies.rb
good_job-3.12.4 lib/good_job/dependencies.rb
good_job-3.12.3 lib/good_job/dependencies.rb
good_job-3.12.2 lib/good_job/dependencies.rb
good_job-3.12.1 lib/good_job/dependencies.rb
good_job-3.12.0 lib/good_job/dependencies.rb
good_job-3.11.1 lib/good_job/dependencies.rb
good_job-3.11.0 lib/good_job/dependencies.rb
good_job-3.10.1 lib/good_job/dependencies.rb
good_job-3.10.0 lib/good_job/dependencies.rb