sidekiq-pool 1.9.0 → 2.0.1
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/.github/workflows/build_release_pipeline.yaml +27 -9
- data/.gitignore +0 -2
- data/.ruby-version +1 -0
- data/Gemfile.lock +129 -0
- data/lib/sidekiq/pool/cli.rb +10 -9
- data/lib/sidekiq/pool/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b48af9b55e63a374a5843de9295d3a56faf1e2a7cd8af3120963584818b4be48
|
|
4
|
+
data.tar.gz: 9b3c20e527f34b48da3459037a5a491722f5b6c934288bbbcf1203bb0d7e9100
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 433e5d5109862b240d7bb2fafb211164b2f4394d9ec49e094fb816cbb415be546d5f4c0561ede18665d2037a5c2c09ce4aa8b1d3518bdea9e4920a918965e5ad
|
|
7
|
+
data.tar.gz: c03c4008bfe19ec580f6e0d9f4a5743a6a9451ea6e864e5446657b11e78c0835ea6002ce50112e2344721795f5960cbfcdc06ba520afb94021380712deea2045
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Test, build, and release Ruby gem
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request:
|
|
@@ -7,23 +7,42 @@ on:
|
|
|
7
7
|
workflow_dispatch:
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
|
-
|
|
10
|
+
test:
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
|
-
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
ruby: [ '2.7', '3.0', '3.1' ]
|
|
13
16
|
steps:
|
|
14
17
|
- uses: actions/checkout@v2
|
|
18
|
+
- name: Setup Ruby
|
|
19
|
+
uses: ruby/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
ruby-version: ${{ matrix.ruby }}
|
|
22
|
+
bundler-cache: true
|
|
15
23
|
- name: Setup
|
|
16
|
-
run: |
|
|
17
|
-
apt-get update -y && apt-get install -y --no-install-recommends cmake=3.13.4-1
|
|
18
|
-
gem install bundler
|
|
24
|
+
run: |
|
|
19
25
|
bundle install
|
|
20
|
-
|
|
21
26
|
- name: Test
|
|
22
27
|
run: bundle exec rake
|
|
28
|
+
|
|
29
|
+
build-release-pipeline:
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
needs: test
|
|
32
|
+
if: success() && github.ref == 'refs/heads/master'
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v2
|
|
35
|
+
- name: Setup Ruby
|
|
36
|
+
uses: ruby/setup-ruby@v1
|
|
37
|
+
with:
|
|
38
|
+
ruby-version: '2.7'
|
|
39
|
+
bundler-cache: true
|
|
40
|
+
- name: Setup
|
|
41
|
+
run: |
|
|
42
|
+
bundle install
|
|
23
43
|
|
|
24
44
|
- name: Build
|
|
25
45
|
id: build
|
|
26
|
-
if: success() && github.ref == 'refs/heads/master'
|
|
27
46
|
run: |
|
|
28
47
|
bundle exec rake build
|
|
29
48
|
echo "::set-output name=gem_version::v$(bundle exec rake version)"
|
|
@@ -51,4 +70,3 @@ jobs:
|
|
|
51
70
|
ref: "refs/tags/${{ steps.build.outputs.gem_version }}",
|
|
52
71
|
sha: context.sha
|
|
53
72
|
})
|
|
54
|
-
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.0.4
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
sidekiq-pool (2.0.1)
|
|
5
|
+
sidekiq (>= 3.0, < 7.0)
|
|
6
|
+
|
|
7
|
+
GEM
|
|
8
|
+
remote: https://rubygems.org/
|
|
9
|
+
specs:
|
|
10
|
+
addressable (2.8.0)
|
|
11
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
12
|
+
ast (2.4.2)
|
|
13
|
+
coderay (1.1.3)
|
|
14
|
+
connection_pool (2.2.5)
|
|
15
|
+
diff-lcs (1.5.0)
|
|
16
|
+
faraday (1.10.0)
|
|
17
|
+
faraday-em_http (~> 1.0)
|
|
18
|
+
faraday-em_synchrony (~> 1.0)
|
|
19
|
+
faraday-excon (~> 1.1)
|
|
20
|
+
faraday-httpclient (~> 1.0)
|
|
21
|
+
faraday-multipart (~> 1.0)
|
|
22
|
+
faraday-net_http (~> 1.0)
|
|
23
|
+
faraday-net_http_persistent (~> 1.0)
|
|
24
|
+
faraday-patron (~> 1.0)
|
|
25
|
+
faraday-rack (~> 1.0)
|
|
26
|
+
faraday-retry (~> 1.0)
|
|
27
|
+
ruby2_keywords (>= 0.0.4)
|
|
28
|
+
faraday-em_http (1.0.0)
|
|
29
|
+
faraday-em_synchrony (1.0.0)
|
|
30
|
+
faraday-excon (1.1.0)
|
|
31
|
+
faraday-httpclient (1.0.1)
|
|
32
|
+
faraday-multipart (1.0.3)
|
|
33
|
+
multipart-post (>= 1.2, < 3)
|
|
34
|
+
faraday-net_http (1.0.1)
|
|
35
|
+
faraday-net_http_persistent (1.2.0)
|
|
36
|
+
faraday-patron (1.0.0)
|
|
37
|
+
faraday-rack (1.0.0)
|
|
38
|
+
faraday-retry (1.0.3)
|
|
39
|
+
gitlab (4.18.0)
|
|
40
|
+
httparty (~> 0.18)
|
|
41
|
+
terminal-table (>= 1.5.1)
|
|
42
|
+
httparty (0.20.0)
|
|
43
|
+
mime-types (~> 3.0)
|
|
44
|
+
multi_xml (>= 0.5.2)
|
|
45
|
+
method_source (1.0.0)
|
|
46
|
+
mime-types (3.4.1)
|
|
47
|
+
mime-types-data (~> 3.2015)
|
|
48
|
+
mime-types-data (3.2022.0105)
|
|
49
|
+
multi_xml (0.6.0)
|
|
50
|
+
multipart-post (2.1.1)
|
|
51
|
+
octokit (4.22.0)
|
|
52
|
+
faraday (>= 0.9)
|
|
53
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
|
54
|
+
parallel (1.21.0)
|
|
55
|
+
parser (3.1.1.0)
|
|
56
|
+
ast (~> 2.4.1)
|
|
57
|
+
pronto (0.11.0)
|
|
58
|
+
gitlab (~> 4.4, >= 4.4.0)
|
|
59
|
+
httparty (>= 0.13.7)
|
|
60
|
+
octokit (~> 4.7, >= 4.7.0)
|
|
61
|
+
rainbow (>= 2.2, < 4.0)
|
|
62
|
+
rexml (~> 3.2)
|
|
63
|
+
rugged (>= 0.23.0, < 1.1.0)
|
|
64
|
+
thor (>= 0.20.3, < 2.0)
|
|
65
|
+
pronto-rubocop (0.11.1)
|
|
66
|
+
pronto (~> 0.11.0)
|
|
67
|
+
rubocop (>= 0.63.1, < 2.0)
|
|
68
|
+
pry (0.14.1)
|
|
69
|
+
coderay (~> 1.1)
|
|
70
|
+
method_source (~> 1.0)
|
|
71
|
+
public_suffix (4.0.6)
|
|
72
|
+
rack (2.2.3)
|
|
73
|
+
rainbow (3.1.1)
|
|
74
|
+
rake (13.0.6)
|
|
75
|
+
redis (4.6.0)
|
|
76
|
+
regexp_parser (2.2.1)
|
|
77
|
+
rexml (3.2.5)
|
|
78
|
+
rspec (3.11.0)
|
|
79
|
+
rspec-core (~> 3.11.0)
|
|
80
|
+
rspec-expectations (~> 3.11.0)
|
|
81
|
+
rspec-mocks (~> 3.11.0)
|
|
82
|
+
rspec-core (3.11.0)
|
|
83
|
+
rspec-support (~> 3.11.0)
|
|
84
|
+
rspec-expectations (3.11.0)
|
|
85
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
86
|
+
rspec-support (~> 3.11.0)
|
|
87
|
+
rspec-mocks (3.11.0)
|
|
88
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
89
|
+
rspec-support (~> 3.11.0)
|
|
90
|
+
rspec-support (3.11.0)
|
|
91
|
+
rubocop (1.26.0)
|
|
92
|
+
parallel (~> 1.10)
|
|
93
|
+
parser (>= 3.1.0.0)
|
|
94
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
95
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
96
|
+
rexml
|
|
97
|
+
rubocop-ast (>= 1.16.0, < 2.0)
|
|
98
|
+
ruby-progressbar (~> 1.7)
|
|
99
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
100
|
+
rubocop-ast (1.16.0)
|
|
101
|
+
parser (>= 3.1.1.0)
|
|
102
|
+
ruby-progressbar (1.11.0)
|
|
103
|
+
ruby2_keywords (0.0.5)
|
|
104
|
+
rugged (1.0.1)
|
|
105
|
+
sawyer (0.8.2)
|
|
106
|
+
addressable (>= 2.3.5)
|
|
107
|
+
faraday (> 0.8, < 2.0)
|
|
108
|
+
sidekiq (6.4.1)
|
|
109
|
+
connection_pool (>= 2.2.2)
|
|
110
|
+
rack (~> 2.0)
|
|
111
|
+
redis (>= 4.2.0)
|
|
112
|
+
terminal-table (3.0.2)
|
|
113
|
+
unicode-display_width (>= 1.1.1, < 3)
|
|
114
|
+
thor (1.2.1)
|
|
115
|
+
unicode-display_width (2.1.0)
|
|
116
|
+
|
|
117
|
+
PLATFORMS
|
|
118
|
+
ruby
|
|
119
|
+
|
|
120
|
+
DEPENDENCIES
|
|
121
|
+
bundler
|
|
122
|
+
pronto-rubocop (~> 0.10)
|
|
123
|
+
pry
|
|
124
|
+
rake (~> 13.0)
|
|
125
|
+
rspec (~> 3.0)
|
|
126
|
+
sidekiq-pool!
|
|
127
|
+
|
|
128
|
+
BUNDLED WITH
|
|
129
|
+
2.2.33
|
data/lib/sidekiq/pool/cli.rb
CHANGED
|
@@ -11,7 +11,6 @@ module Sidekiq
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
def initialize
|
|
14
|
-
@child_index = 0
|
|
15
14
|
@pool = []
|
|
16
15
|
@done = false
|
|
17
16
|
@system_booted = false
|
|
@@ -74,10 +73,12 @@ module Sidekiq
|
|
|
74
73
|
boot_system
|
|
75
74
|
|
|
76
75
|
@types = @settings[:workers]
|
|
76
|
+
index = -1
|
|
77
77
|
@types.each do |type|
|
|
78
78
|
type[:amount].times do
|
|
79
|
+
index += 1
|
|
79
80
|
sleep @fork_wait || DEFAULT_FORK_WAIT
|
|
80
|
-
fork_child(type[:command])
|
|
81
|
+
fork_child(type[:command], index)
|
|
81
82
|
end
|
|
82
83
|
end
|
|
83
84
|
drop_reload_marker
|
|
@@ -194,7 +195,7 @@ module Sidekiq
|
|
|
194
195
|
end
|
|
195
196
|
end
|
|
196
197
|
|
|
197
|
-
def fork_child(command, wait_for_busy = true)
|
|
198
|
+
def fork_child(command, index, wait_for_busy = true)
|
|
198
199
|
logger.info "Adding child with args: (#{command}) in #{working_directory}, waiting for busy: #{wait_for_busy}"
|
|
199
200
|
if working_directory && !Dir.exist?(working_directory)
|
|
200
201
|
logger.info "Working directory: #{working_directory} does not exist unable to fork"
|
|
@@ -207,14 +208,14 @@ module Sidekiq
|
|
|
207
208
|
options.merge!(opts)
|
|
208
209
|
|
|
209
210
|
@self_write.close
|
|
210
|
-
$0 =
|
|
211
|
-
|
|
212
|
-
options[:index] = @child_index
|
|
211
|
+
$0 = "sidekiq #{Sidekiq::VERSION} worker #{index} starting"
|
|
212
|
+
options[:index] = index
|
|
213
213
|
|
|
214
214
|
# reset child identity
|
|
215
215
|
@@process_nonce = nil
|
|
216
216
|
@@identity = nil
|
|
217
217
|
options[:identity] = identity
|
|
218
|
+
options[:tag] = "worker #{index}"
|
|
218
219
|
|
|
219
220
|
run_after_fork_hooks
|
|
220
221
|
run_child
|
|
@@ -228,7 +229,7 @@ module Sidekiq
|
|
|
228
229
|
sleep 1
|
|
229
230
|
end if wait_for_busy
|
|
230
231
|
|
|
231
|
-
@pool << { pid: pid, command: command }
|
|
232
|
+
@pool << { pid: pid, index: index, command: command }
|
|
232
233
|
end
|
|
233
234
|
|
|
234
235
|
def wait_for_signals
|
|
@@ -314,9 +315,9 @@ module Sidekiq
|
|
|
314
315
|
end
|
|
315
316
|
|
|
316
317
|
def handle_dead_child(child)
|
|
317
|
-
logger.info "Child #{child[:pid]} died"
|
|
318
|
+
logger.info "Child #{child[:pid]} (worker #{child[:index]}) died"
|
|
318
319
|
@pool.delete(child)
|
|
319
|
-
fork_child(child[:command], false)
|
|
320
|
+
fork_child(child[:command], child[:index], false)
|
|
320
321
|
end
|
|
321
322
|
|
|
322
323
|
def alive?(pid)
|
data/lib/sidekiq/pool/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq-pool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vinted
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-06-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: sidekiq
|
|
@@ -98,7 +98,9 @@ files:
|
|
|
98
98
|
- ".gitignore"
|
|
99
99
|
- ".rspec"
|
|
100
100
|
- ".rubocop.yml"
|
|
101
|
+
- ".ruby-version"
|
|
101
102
|
- Gemfile
|
|
103
|
+
- Gemfile.lock
|
|
102
104
|
- LICENSE.txt
|
|
103
105
|
- README.md
|
|
104
106
|
- Rakefile
|
|
@@ -127,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
127
129
|
- !ruby/object:Gem::Version
|
|
128
130
|
version: '0'
|
|
129
131
|
requirements: []
|
|
130
|
-
rubygems_version: 3.1.
|
|
132
|
+
rubygems_version: 3.1.6
|
|
131
133
|
signing_key:
|
|
132
134
|
specification_version: 4
|
|
133
135
|
summary: Forks and manages multiple Sidekiq processes
|