sidekiq-group 0.1.3 → 0.1.7

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: dd109b06a1d0e8b3dfc74edf53aaf8fb57e72046c9eac0352abc79c83560fb04
4
- data.tar.gz: 309916f9bddab5075cec3690de80b33a305986074157b3f86a0ee0a906dd72c8
3
+ metadata.gz: fb1e0ba3a53c5a009c265ceabc99fc5153be564c12ed6c30f30e13040fc304f6
4
+ data.tar.gz: 1d99d5a585a6b37e0fae401cf06a6198bc47b017a1ecae620d7659d642356573
5
5
  SHA512:
6
- metadata.gz: d64c64fbbb3c950ad847a49ce94dea78084443de6260e513cb4575466084a0b0225cdf048aa1f9c881b9b0539feda2a43fd94c29fc161ab23b8c216c75d0c695
7
- data.tar.gz: 2a491e6947ac7b9b27b82c3ce098b013b948a4c913606e228a1c5f8924d921fb1960093e634a68992d07c72c4b3096da7055aa3fac2766b150f786d12029eacc
6
+ metadata.gz: 949c2e7b90cee062a5bbd4d00ad9236a77c8432fd96fc7f14006067af0c9b8862d05bb4d126d672029250fe96021c8f3769ab8a3e24d9438f7ea4600da917f81
7
+ data.tar.gz: e6b7a7cc4c5d90b1bca83f510eaa47db8d63dcdf3eb2e30b8e3a7fdd5ec3c04fba907446dc01f9ddeb170d078e95791ff21c40fcfa17e1643a54e6001bfe2165
@@ -24,10 +24,12 @@ module Sidekiq
24
24
  end
25
25
 
26
26
  def add(jid)
27
+ Sidekiq::Logging.logger.info "Scheduling child job #{jid} for parent #{@cid}" if Sidekiq::Group.debug
28
+
27
29
  Sidekiq.redis do |r|
28
- r.multi do
29
- r.sadd("#{@cid}-jids", jid)
30
- r.expire("#{@cid}-jids", CID_EXPIRE_TTL)
30
+ r.multi do |pipeline|
31
+ pipeline.sadd("#{@cid}-jids", jid)
32
+ pipeline.expire("#{@cid}-jids", CID_EXPIRE_TTL)
31
33
  end
32
34
  end
33
35
  end
@@ -44,6 +46,8 @@ module Sidekiq
44
46
 
45
47
  callback_class, callback_options = callback_data
46
48
  options = JSON(callback_options)
49
+
50
+ Sidekiq::Logging.logger.info "Scheduling callback job #{callback_class} with #{options}" if Sidekiq::Group.debug
47
51
  Sidekiq::Group::Worker.perform_async(callback_class, options)
48
52
 
49
53
  cleanup_redis
@@ -52,14 +56,22 @@ module Sidekiq
52
56
  private
53
57
 
54
58
  def remove_processed(jid)
59
+ Sidekiq::Logging.logger.info "Child job #{jid} completed" if Sidekiq::Group.debug
60
+
61
+ return if Sidekiq.redis { |r| r.srem("#{@cid}-jids", jid) }
62
+
63
+ Sidekiq::Logging.logger.info "Could not remove child job #{jid} from Redis" if Sidekiq::Group.debug
64
+ sleep 1
55
65
  Sidekiq.redis { |r| r.srem("#{@cid}-jids", jid) }
56
66
  end
57
67
 
58
68
  def pending
59
- Sidekiq.redis { |r| r.scard("#{@cid}-jids") }
69
+ @pending ||= Sidekiq.redis { |r| r.scard("#{@cid}-jids") }
60
70
  end
61
71
 
62
72
  def processed_all_jobs?
73
+ Sidekiq::Logging.logger.info "Pending jobs: #{pending}" if Sidekiq::Group.debug
74
+
63
75
  spawned_all_jobs? && pending.zero?
64
76
  end
65
77
 
@@ -69,18 +81,18 @@ module Sidekiq
69
81
 
70
82
  def callback_data
71
83
  Sidekiq.redis do |r|
72
- r.multi do
73
- r.hget(@cid, 'callback_class')
74
- r.hget(@cid, 'callback_options')
84
+ r.multi do |pipeline|
85
+ pipeline.hget(@cid, 'callback_class')
86
+ pipeline.hget(@cid, 'callback_options')
75
87
  end
76
88
  end
77
89
  end
78
90
 
79
91
  def persist(attribute, value)
80
92
  Sidekiq.redis do |r|
81
- r.multi do
82
- r.hset(@cid, attribute, value)
83
- r.expire(@cid, CID_EXPIRE_TTL)
93
+ r.multi do |pipeline|
94
+ pipeline.hset(@cid, attribute, value)
95
+ pipeline.expire(@cid, CID_EXPIRE_TTL)
84
96
  end
85
97
  end
86
98
  end
@@ -91,9 +103,9 @@ module Sidekiq
91
103
 
92
104
  def locked?
93
105
  Sidekiq.redis do |r|
94
- r.multi do
95
- r.getset("#{@cid}-finished", 1)
96
- r.expire("#{@cid}-finished", LOCK_TTL)
106
+ r.multi do |pipeline|
107
+ pipeline.getset("#{@cid}-finished", 1)
108
+ pipeline.expire("#{@cid}-finished", LOCK_TTL)
97
109
  end.first
98
110
  end
99
111
  end
@@ -1,5 +1,5 @@
1
1
  module Sidekiq
2
2
  module Group
3
- VERSION = '0.1.3'.freeze
3
+ VERSION = '0.1.7'.freeze
4
4
  end
5
5
  end
data/lib/sidekiq/group.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'sidekiq/logging'
2
1
  require 'sidekiq/group/version'
3
2
  require 'sidekiq/group/collection'
4
3
  require 'sidekiq/group/middleware'
@@ -7,6 +6,10 @@ module Sidekiq
7
6
  module Group
8
7
  class NoBlockGivenError < StandardError; end
9
8
 
9
+ class << self
10
+ attr_accessor :debug
11
+ end
12
+
10
13
  def sidekiq_group(options = {})
11
14
  raise NoBlockGivenError unless block_given?
12
15
 
@@ -28,7 +31,7 @@ module Sidekiq
28
31
  end
29
32
 
30
33
  def sidekiq_logger
31
- Sidekiq::Logging.logger
34
+ Sidekiq.logger
32
35
  end
33
36
  end
34
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-group
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matic developers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-23 00:00:00.000000000 Z
11
+ date: 2022-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '5.1'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '6'
36
+ version: '6.5'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,21 +43,21 @@ dependencies:
43
43
  version: '5.1'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '6'
46
+ version: '6.5'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '2.0'
53
+ version: '1.17'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '2.0'
60
+ version: '1.17'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
- rubygems_version: 3.0.3
109
+ rubygems_version: 3.1.3
110
110
  signing_key:
111
111
  specification_version: 4
112
112
  summary: Addon for Sidekiq that provides similar functionality to Pro version Batches