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 +4 -4
- data/lib/sidekiq/group/collection.rb +25 -13
- data/lib/sidekiq/group/version.rb +1 -1
- data/lib/sidekiq/group.rb +5 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb1e0ba3a53c5a009c265ceabc99fc5153be564c12ed6c30f30e13040fc304f6
|
4
|
+
data.tar.gz: 1d99d5a585a6b37e0fae401cf06a6198bc47b017a1ecae620d7659d642356573
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
30
|
-
|
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
|
-
|
74
|
-
|
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
|
-
|
83
|
-
|
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
|
-
|
96
|
-
|
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
|
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
|
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.
|
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:
|
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: '
|
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: '
|
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.
|
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
|