Module: SidekiqUniqueJobs::OptionsWithFallback
- Included in:
- Client::Middleware, Server::Middleware
- Defined in:
- lib/sidekiq_unique_jobs/options_with_fallback.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #lock ⇒ Object
- #lock_cache ⇒ Object
- #lock_cache=(obj) ⇒ Object
- #lock_class ⇒ Object
- #lock_type ⇒ Object
- #lock_type_from(hash, key = UNIQUE_KEY) ⇒ Object
- #log_duplicate_payload? ⇒ Boolean
- #options ⇒ Object
- #unique_disabled? ⇒ Boolean
- #unique_enabled? ⇒ Boolean
- #unique_lock ⇒ Object
Class Method Details
.included(base) ⇒ Object
5 6 7 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 5 def self.included(base) base.send(:extend, SidekiqUniqueJobs::OptionsWithFallback::ClassMethods) end |
Instance Method Details
#lock ⇒ Object
21 22 23 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 21 def lock @lock = lock_class.new(item) end |
#lock_cache ⇒ Object
49 50 51 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 49 def lock_cache self.class.lock_cache end |
#lock_cache=(obj) ⇒ Object
53 54 55 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 53 def lock_cache=(obj) self.class.lock_cache = obj end |
#lock_class ⇒ Object
25 26 27 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 25 def lock_class lock_cache[unique_lock.to_sym] ||= Object.const_get("SidekiqUniqueJobs::Lock::#{unique_lock.to_s.classify}") end |
#lock_type ⇒ Object
40 41 42 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 40 def lock_type lock_type_from() || lock_type_from(item) end |
#lock_type_from(hash, key = UNIQUE_KEY) ⇒ Object
44 45 46 47 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 44 def lock_type_from(hash, key = UNIQUE_KEY) return nil if hash[key].is_a?(TrueClass) hash[key] end |
#log_duplicate_payload? ⇒ Boolean
17 18 19 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 17 def log_duplicate_payload? [LOG_DUPLICATE_KEY] || item[LOG_DUPLICATE_KEY] end |
#options ⇒ Object
57 58 59 60 61 62 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 57 def @options ||= worker_class. if worker_class.respond_to?(:get_sidekiq_options) @options ||= Sidekiq. @options ||= {} @options &&= @options.stringify_keys end |
#unique_disabled? ⇒ Boolean
13 14 15 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 13 def unique_disabled? !unique_enabled? end |
#unique_enabled? ⇒ Boolean
9 10 11 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 9 def unique_enabled? [UNIQUE_KEY] || item[UNIQUE_KEY] end |
#unique_lock ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/sidekiq_unique_jobs/options_with_fallback.rb', line 29 def unique_lock @unique_lock ||= if .key?(UNIQUE_KEY) && [UNIQUE_KEY].to_s == 'true' warn('unique: true is no longer valid. Please set it to the type of lock required like: ' \ '`unique: :until_executed`') [UNIQUE_LOCK_KEY] || SidekiqUniqueJobs.default_lock else lock_type || SidekiqUniqueJobs.default_lock end end |