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
- .adapter_for(name) ⇒ Object
-
.configured_adapter ⇒ Object
Resolves the adapter selected in the current configuration.
- .known_adapter_names ⇒ Object
-
.register_adapter(name, adapter_class) ⇒ Object
Registers an adapter class under a name.
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_adapter ⇒ Object
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 = TalkToYourApp.configuration.enabled_plugins[:jobs] || {} adapter_for([:adapter]) || raise(ConfigurationError, "talk_to_your_app: the jobs plugin has no adapter configured.") end |
.known_adapter_names ⇒ Object
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 |