Class: DelayedCron::Jobs::Sidekiq
- Inherits:
-
Object
- Object
- DelayedCron::Jobs::Sidekiq
- Includes:
- Sidekiq::Worker
- Defined in:
- lib/delayed_cron/jobs/sidekiq.rb
Class Method Summary collapse
- .at_match?(arg_options, options) ⇒ Boolean
- .class_and_method_match?(args, klass, method_name) ⇒ Boolean
- .do_not_enqueue?(klass, method_name, options) ⇒ Boolean
- .enqueue_delayed_cron(klass, method_name, options) ⇒ Object
- .enqueued?(klass, method_name, options) ⇒ Boolean
- .matches?(item, klass, method_name, options) ⇒ Boolean
- .retrying?(klass, method_name, options) ⇒ Boolean
- .scheduled?(klass, method_name, options) ⇒ Boolean
Instance Method Summary collapse
Class Method Details
.at_match?(arg_options, options) ⇒ Boolean
46 47 48 49 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 46 def self.at_match?(, ) return true unless !!["at"] && !![:at] ["at"] == [:at] end |
.class_and_method_match?(args, klass, method_name) ⇒ Boolean
51 52 53 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 51 def self.class_and_method_match?(args, klass, method_name) args[0] == klass && args[1] == method_name.to_s end |
.do_not_enqueue?(klass, method_name, options) ⇒ Boolean
17 18 19 20 21 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 17 def self.do_not_enqueue?(klass, method_name, ) scheduled?(klass, method_name, ) || enqueued?(klass, method_name, ) || (klass, method_name, ) end |
.enqueue_delayed_cron(klass, method_name, options) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 10 def self.enqueue_delayed_cron(klass, method_name, ) .symbolize_keys! unless do_not_enqueue?(klass, method_name, ) perform_in([:interval].to_i, klass, method_name, ) end end |
.enqueued?(klass, method_name, options) ⇒ Boolean
35 36 37 38 39 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 35 def self.enqueued?(klass, method_name, ) ::Sidekiq::Queue.new("cron_job").collect(&:item).select do |item| matches?(item, klass, method_name, ) end.present? end |
.matches?(item, klass, method_name, options) ⇒ Boolean
41 42 43 44 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 41 def self.matches?(item, klass, method_name, ) class_and_method_match?(item["args"], klass, method_name) && at_match?(item["args"][2], ) end |
.retrying?(klass, method_name, options) ⇒ Boolean
23 24 25 26 27 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 23 def self.(klass, method_name, ) ::Sidekiq::RetrySet.new.collect(&:item).select do |item| matches?(item, klass, method_name, ) end.present? end |
.scheduled?(klass, method_name, options) ⇒ Boolean
29 30 31 32 33 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 29 def self.scheduled?(klass, method_name, ) ::Sidekiq::ScheduledSet.new.collect(&:item).select do |item| matches?(item, klass, method_name, ) end.present? end |
Instance Method Details
#perform(klass, method_name, options) ⇒ Object
55 56 57 |
# File 'lib/delayed_cron/jobs/sidekiq.rb', line 55 def perform(klass, method_name, ) DelayedCron.process_job(klass, method_name, ) end |