Class: SidekiqUniqueJobs::Server
- Inherits:
-
Object
- Object
- SidekiqUniqueJobs::Server
- Includes:
- Connection, SidekiqUniqueJobs::Script::Caller
- Defined in:
- lib/sidekiq_unique_jobs/server.rb
Overview
Server-side lifecycle management for sidekiq-unique-jobs.
Handles startup (migration, metrics, reaper) and shutdown (flush, cleanup).
Constant Summary collapse
- DEATH_HANDLER =
(lambda do |job, _ex| return unless (digest = job["lock_digest"]) SidekiqUniqueJobs::Digests.new.delete_by_digest(digest) end).freeze
Class Attribute Summary collapse
-
.metrics ⇒ Object
readonly
Returns the value of attribute metrics.
Class Method Summary collapse
- .configure(config) ⇒ Object
-
.reap(conn = nil) ⇒ Integer
Run the reaper once (used by tests and manual invocation).
- .start ⇒ Object
- .stop ⇒ Object
Methods included from SidekiqUniqueJobs::Script::Caller
call_script, debug_lua, do_call, extract_args, max_history, normalize_argv, now_f, redis_version
Methods included from Connection
Class Attribute Details
.metrics ⇒ Object (readonly)
Returns the value of attribute metrics.
20 21 22 |
# File 'lib/sidekiq_unique_jobs/server.rb', line 20 def metrics @metrics end |
Class Method Details
.configure(config) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/sidekiq_unique_jobs/server.rb', line 22 def configure(config) config.on(:startup) { start } config.on(:shutdown) { stop } return unless config.respond_to?(:death_handlers) config.death_handlers << DEATH_HANDLER end |
.reap(conn = nil) ⇒ Integer
Run the reaper once (used by tests and manual invocation)
47 48 49 50 51 52 53 |
# File 'lib/sidekiq_unique_jobs/server.rb', line 47 def reap(conn = nil) if conn do_reap(conn) else SidekiqUniqueJobs.redis { |c| do_reap(c) } end end |
.start ⇒ Object
31 32 33 34 35 |
# File 'lib/sidekiq_unique_jobs/server.rb', line 31 def start SidekiqUniqueJobs::UpgradeLocks.call start_metrics start_reaper end |
.stop ⇒ Object
37 38 39 40 41 |
# File 'lib/sidekiq_unique_jobs/server.rb', line 37 def stop @reaper_task&.shutdown @flush_task&.shutdown @metrics&.flush end |