sidekiq-batch-jobs 0.3.0
“A hand-rolled alternative to Sidekiq Pro batches. Track a group of Sidekiq jobs as a batch in PostgreSQL, get atomic completion detection,…”
Ruby dynamically resolves a constantRuby loads a relative source module
SHA-2563e39d7c317296a00c14e80da7e5808fe9fa653fe5ff36712c53f9e53abe6603d
MaleculeH₂(DbOs)
Evidence
1# frozen_string_literal: true
2
3require "sidekiq"
4require_relative "jobs/version"
5require_relative "jobs/schema"
6require_relative "jobs/enum_compat"
7require_relative "jobs/failure_policy"
8requir …
77:20… es.delete_if { |entry| entry.klass.to_s == klass.to_s }
78 chain.public_send(position, klass)
79 end
80 private_class_method :rebind
81
82 def self.register_death_handler(sidekiq_config)
83 …
6:57… tch::Jobs.configure`. An
7 # initializer is the right place: it runs before any model is autoloaded,
8 # which `base_class_name` requires.
51:17… . `const_get` rather than `constantize` because this runs from a
52 # model class body, where ActiveSupport may not be loaded yet.
53 def base_class
54 ::Object.const_get(base_class_name)
55 end
56
57 # Keep comfortably longer than Sidekiq's ~30s heartbeat expiry, so the
58 # reaper never races Sidekiq's own recovery of a crashed process's jobs. …
9:46… on the way to the database.
10 CLAIM_SQL = <<~SQL.squish
11 UPDATE sidekiq_batches
12 SET callbacks_fired = callbacks_fired || jsonb_build_object(?, to_jsonb(NOW())),
13 updated_at = NOW()
⋯8 lines
No evidence locations were recorded for this file. Raw result