Module: TalkToYourApp::Plugins::Jobs

Defined in:
lib/talk_to_your_app/plugins/jobs/plugin.rb,
lib/talk_to_your_app/plugins/jobs/interface.rb,
lib/talk_to_your_app/plugins/jobs/tools/health.rb,
lib/talk_to_your_app/plugins/jobs/adapters/sidekiq.rb,
lib/talk_to_your_app/plugins/jobs/tools/failed_jobs.rb,
lib/talk_to_your_app/plugins/jobs/tools/queue_sizes.rb,
lib/talk_to_your_app/plugins/jobs/tools/recent_jobs.rb,
lib/talk_to_your_app/plugins/jobs/tools/rate_metrics.rb,
lib/talk_to_your_app/plugins/jobs/adapters/solid_queue.rb

Overview

The Jobs plugin exposes read-only background-job metrics through a common interface, backed by an operator-selected adapter. Adapters register themselves (U8 Sidekiq, U9 Solid Queue); the operator declares which one with ‘config.plugin :jobs, adapter: :sidekiq`. Selection is explicit, never auto-detected — boot fails if no adapter is declared or the named one is unknown or its backing gem is absent.

Defined Under Namespace

Modules: Adapters, Interface, Tools Classes: Plugin

Class Method Summary collapse

Class Method Details

.adapter_for(name) ⇒ Object



29
30
31
# File 'lib/talk_to_your_app/plugins/jobs/plugin.rb', line 29

def adapter_for(name)
  @adapters[name&.to_sym]
end

.configured_adapterObject

Resolves the adapter selected in the current configuration.



38
39
40
41
42
# File 'lib/talk_to_your_app/plugins/jobs/plugin.rb', line 38

def configured_adapter
  options = TalkToYourApp.configuration.enabled_plugins[:jobs] || {}
  adapter_for(options[:adapter]) ||
    raise(ConfigurationError, "talk_to_your_app: the jobs plugin has no adapter configured.")
end

.known_adapter_namesObject



33
34
35
# File 'lib/talk_to_your_app/plugins/jobs/plugin.rb', line 33

def known_adapter_names
  @adapters.keys
end

.register_adapter(name, adapter_class) ⇒ Object

Registers an adapter class under a name. The class duck-types Jobs::Interface and exposes ‘required_gem` ({ const:, gem_name: }).



25
26
27
# File 'lib/talk_to_your_app/plugins/jobs/plugin.rb', line 25

def register_adapter(name, adapter_class)
  @adapters[name.to_sym] = adapter_class
end