sidekiq-cronitor 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebea71b4352db386aa8712eb8462b88b4f2a91ed0e7921face88453eb56981e7
4
- data.tar.gz: 74fd0296d97a9480d55442d777937c6ae21f6a0821b6c690c8f9d366432ad998
3
+ metadata.gz: b5acee28d3accfbc11ede0358abfd812ccded70317fc9f9993429837cee38502
4
+ data.tar.gz: 5fe4bdb322d84c3af94512cb9d09145a1f5409ac5fc99b0e4a97d8f3a81b0112
5
5
  SHA512:
6
- metadata.gz: 699883656bff1c2adc7e08fcbae41006e4be244a256ffebe30b54b891b51dde4367f412ca4616b6a35571b0c2c892ee4f207696fa42575eb276e203295869260
7
- data.tar.gz: 1edd11e88318b33b950626aae9b7615e0e5bf007ae74bc0e5a68582979f9d6741c5120b9ea4551fd1a3a675890a43d56ca69fa857be3a54b7dd9c9a5b0836677
6
+ metadata.gz: 22056ed9ca15d9a6de93da23e751f88d2ce41dfbb360d1ff02f473017d52a6c9ddfc3fd10a4ed5aa2e043bc197ccd340c652caf5d3144e201557456191515643
7
+ data.tar.gz: dd3218fa9a210969306bf3fa2f9dc0fe621b0625e7579cfa5a61855f4dc5c86de0a30bac88d11b5dd52298e8b4eba1356221789cfc2eb01df523573df6ce1820
@@ -6,15 +6,28 @@ module Sidekiq::Cronitor
6
6
  monitors_payload = []
7
7
  loops = Sidekiq::Periodic::LoopSet.new
8
8
  loops.each do |lop|
9
- job_key = lop.klass.sidekiq_options.fetch('cronitor_key', lop.klass.to_s)
10
- next if lop.klass.sidekiq_options.fetch('cronitor_disabled', false)
9
+ next if fetch_option(lop, 'cronitor_disabled')
11
10
 
12
- monitors_payload << { key: job_key, schedule: lop.schedule, metadata: lop.options, platform: 'sidekiq', type: 'job' }
11
+ monitors_payload << {
12
+ key: fetch_option(lop, 'cronitor_key') || lop.klass.to_s,
13
+ group: fetch_option(lop, 'cronitor_group'),
14
+ grace_seconds: fetch_option(lop, 'cronitor_grace_seconds')&.to_i,
15
+ schedule: lop.schedule,
16
+ timezone: lop.tz_name || Time.respond_to?(:zone) && Time.zone.tzinfo.name || nil,
17
+ metadata: lop.options.to_s,
18
+ platform: 'sidekiq',
19
+ type: 'job'
20
+ }.compact
13
21
  end
14
22
 
15
23
  Cronitor::Monitor.put(monitors: monitors_payload)
16
24
  rescue Cronitor::Error => e
17
25
  Sidekiq.logger.error("[cronitor] error during #{name}.#{__method__}: #{e}")
18
26
  end
27
+
28
+ def self.fetch_option(lop, key)
29
+ lop.options.fetch(key, nil) ||
30
+ lop.klass.constantize.sidekiq_options.fetch(key, nil)
31
+ end
19
32
  end
20
33
  end
@@ -1,5 +1,5 @@
1
1
  module Sidekiq
2
2
  module Cronitor
3
- VERSION = '3.4.0'
3
+ VERSION = '3.5.0'
4
4
  end
5
5
  end
@@ -41,8 +41,18 @@ module Sidekiq::Cronitor
41
41
  end
42
42
 
43
43
  def job_key(worker)
44
- worker.class.sidekiq_options.fetch("cronitor_key", nil) ||
45
- options(worker).fetch(:key, worker.class.name)
44
+ periodic_job_key(worker) || worker.class.sidekiq_options.fetch('cronitor_key', nil) ||
45
+ options(worker).fetch(:key, worker.class.name)
46
+ end
47
+
48
+ def periodic_job_key(worker)
49
+ return unless defined?(Sidekiq::Periodic)
50
+
51
+ periodic_job = Sidekiq::Periodic::LoopSet.new.find do |lop|
52
+ lop.history.find { |j| j[0] == worker.jid }
53
+ end
54
+
55
+ periodic_job.present? && periodic_job.options.fetch('cronitor_key', nil)
46
56
  end
47
57
 
48
58
  def options(worker)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-cronitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zeke Gabrielse
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-08-20 00:00:00.000000000 Z
12
+ date: 2022-11-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sidekiq