sidekiq-pool 1.8.0 → 1.9.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 +54 -0
- data/Rakefile +4 -0
- data/lib/sidekiq/pool/cli.rb +14 -8
- data/lib/sidekiq/pool/version.rb +1 -1
- data/sidekiq-pool.gemspec +2 -2
- metadata +6 -8
- data/.travis.yml +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf98a1a08f14125a21317d2846177402c75beea40e6204e63889db1bd43320ca
|
|
4
|
+
data.tar.gz: f3d39f372b981c12c312e4cd76fd7788bcdcea1122aa320fa12290195798eaaf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f23137a068a0e6d9a8736df5104875b88c7ed0e70189ad7753cea33c5c62a3e522be30556745b63b1c8ec2656eea135739b361adc70196ec604b2cc3f2ce7d3f
|
|
7
|
+
data.tar.gz: f82f7f8bed62b0f5e8768c35710eadbb938c21609a0493a050a5227c7b75276e3bd196d123ecbabe2f8bda6976a03c426d2a81171caf6e46194f36bfdc4d223e
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Build and release ruby gem
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [ master ]
|
|
6
|
+
push:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build-release-pipeline:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
container: ruby:2.7.2
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v2
|
|
15
|
+
- 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
|
|
19
|
+
bundle install
|
|
20
|
+
|
|
21
|
+
- name: Test
|
|
22
|
+
run: bundle exec rake
|
|
23
|
+
|
|
24
|
+
- name: Build
|
|
25
|
+
id: build
|
|
26
|
+
if: success() && github.ref == 'refs/heads/master'
|
|
27
|
+
run: |
|
|
28
|
+
bundle exec rake build
|
|
29
|
+
echo "::set-output name=gem_version::v$(bundle exec rake version)"
|
|
30
|
+
|
|
31
|
+
- name: Release
|
|
32
|
+
if: success() && github.ref == 'refs/heads/master'
|
|
33
|
+
run: |
|
|
34
|
+
mkdir -p $HOME/.gem
|
|
35
|
+
touch $HOME/.gem/credentials
|
|
36
|
+
chmod 600 $HOME/.gem/credentials
|
|
37
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
|
38
|
+
gem push pkg/*
|
|
39
|
+
env:
|
|
40
|
+
GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_AUTH_TOKEN }}"
|
|
41
|
+
|
|
42
|
+
- name: Tag repo with new gem version
|
|
43
|
+
if: success() && github.ref == 'refs/heads/master'
|
|
44
|
+
uses: actions/github-script@v3
|
|
45
|
+
with:
|
|
46
|
+
github-token: ${{ github.token }}
|
|
47
|
+
script: |
|
|
48
|
+
github.git.createRef({
|
|
49
|
+
owner: context.repo.owner,
|
|
50
|
+
repo: context.repo.repo,
|
|
51
|
+
ref: "refs/tags/${{ steps.build.outputs.gem_version }}",
|
|
52
|
+
sha: context.sha
|
|
53
|
+
})
|
|
54
|
+
|
data/Rakefile
CHANGED
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
|
|
@@ -20,8 +19,13 @@ module Sidekiq
|
|
|
20
19
|
|
|
21
20
|
alias_method :run_child, :run
|
|
22
21
|
|
|
22
|
+
def write_pid
|
|
23
|
+
super if @master_pid == ::Process.pid
|
|
24
|
+
end
|
|
25
|
+
|
|
23
26
|
def run
|
|
24
27
|
@master_pid = $$
|
|
28
|
+
write_pid
|
|
25
29
|
|
|
26
30
|
trap_signals
|
|
27
31
|
update_process_name
|
|
@@ -69,10 +73,12 @@ module Sidekiq
|
|
|
69
73
|
boot_system
|
|
70
74
|
|
|
71
75
|
@types = @settings[:workers]
|
|
76
|
+
index = -1
|
|
72
77
|
@types.each do |type|
|
|
73
78
|
type[:amount].times do
|
|
79
|
+
index += 1
|
|
74
80
|
sleep @fork_wait || DEFAULT_FORK_WAIT
|
|
75
|
-
fork_child(type[:command])
|
|
81
|
+
fork_child(type[:command], index)
|
|
76
82
|
end
|
|
77
83
|
end
|
|
78
84
|
drop_reload_marker
|
|
@@ -189,7 +195,7 @@ module Sidekiq
|
|
|
189
195
|
end
|
|
190
196
|
end
|
|
191
197
|
|
|
192
|
-
def fork_child(command, wait_for_busy = true)
|
|
198
|
+
def fork_child(command, index, wait_for_busy = true)
|
|
193
199
|
logger.info "Adding child with args: (#{command}) in #{working_directory}, waiting for busy: #{wait_for_busy}"
|
|
194
200
|
if working_directory && !Dir.exist?(working_directory)
|
|
195
201
|
logger.info "Working directory: #{working_directory} does not exist unable to fork"
|
|
@@ -203,13 +209,13 @@ module Sidekiq
|
|
|
203
209
|
|
|
204
210
|
@self_write.close
|
|
205
211
|
$0 = 'sidekiq starting'
|
|
206
|
-
|
|
207
|
-
options[:index] = @child_index
|
|
212
|
+
options[:index] = index
|
|
208
213
|
|
|
209
214
|
# reset child identity
|
|
210
215
|
@@process_nonce = nil
|
|
211
216
|
@@identity = nil
|
|
212
217
|
options[:identity] = identity
|
|
218
|
+
options[:tag] = "worker #{index}"
|
|
213
219
|
|
|
214
220
|
run_after_fork_hooks
|
|
215
221
|
run_child
|
|
@@ -223,7 +229,7 @@ module Sidekiq
|
|
|
223
229
|
sleep 1
|
|
224
230
|
end if wait_for_busy
|
|
225
231
|
|
|
226
|
-
@pool << { pid: pid, command: command }
|
|
232
|
+
@pool << { pid: pid, index: index, command: command }
|
|
227
233
|
end
|
|
228
234
|
|
|
229
235
|
def wait_for_signals
|
|
@@ -309,9 +315,9 @@ module Sidekiq
|
|
|
309
315
|
end
|
|
310
316
|
|
|
311
317
|
def handle_dead_child(child)
|
|
312
|
-
logger.info "Child #{child[:pid]} died"
|
|
318
|
+
logger.info "Child #{child[:pid]} (worker #{child[:index]}) died"
|
|
313
319
|
@pool.delete(child)
|
|
314
|
-
fork_child(child[:command], false)
|
|
320
|
+
fork_child(child[:command], child[:index], false)
|
|
315
321
|
end
|
|
316
322
|
|
|
317
323
|
def alive?(pid)
|
data/lib/sidekiq/pool/version.rb
CHANGED
data/sidekiq-pool.gemspec
CHANGED
|
@@ -6,8 +6,8 @@ require 'sidekiq/pool/version'
|
|
|
6
6
|
Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = 'sidekiq-pool'
|
|
8
8
|
spec.version = Sidekiq::Pool::VERSION
|
|
9
|
-
spec.authors = ['
|
|
10
|
-
spec.email = ['
|
|
9
|
+
spec.authors = ['Vinted']
|
|
10
|
+
spec.email = ['backend@vinted.com']
|
|
11
11
|
|
|
12
12
|
spec.summary = %q{Forks and manages multiple Sidekiq processes}
|
|
13
13
|
spec.description = %q{Allows Sidekiq using more CPU cores on Ruby MRI by forking multiple processes.}
|
metadata
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq-pool
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.9.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
- Raimondas Valickas
|
|
7
|
+
- Vinted
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2022-02-25 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: sidekiq
|
|
@@ -89,17 +88,16 @@ dependencies:
|
|
|
89
88
|
version: '3.0'
|
|
90
89
|
description: Allows Sidekiq using more CPU cores on Ruby MRI by forking multiple processes.
|
|
91
90
|
email:
|
|
92
|
-
-
|
|
93
|
-
- raimondas.valickas@gmail.com
|
|
91
|
+
- backend@vinted.com
|
|
94
92
|
executables:
|
|
95
93
|
- sidekiq-pool
|
|
96
94
|
extensions: []
|
|
97
95
|
extra_rdoc_files: []
|
|
98
96
|
files:
|
|
97
|
+
- ".github/workflows/build_release_pipeline.yaml"
|
|
99
98
|
- ".gitignore"
|
|
100
99
|
- ".rspec"
|
|
101
100
|
- ".rubocop.yml"
|
|
102
|
-
- ".travis.yml"
|
|
103
101
|
- Gemfile
|
|
104
102
|
- LICENSE.txt
|
|
105
103
|
- README.md
|
|
@@ -129,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
129
127
|
- !ruby/object:Gem::Version
|
|
130
128
|
version: '0'
|
|
131
129
|
requirements: []
|
|
132
|
-
rubygems_version: 3.
|
|
130
|
+
rubygems_version: 3.1.4
|
|
133
131
|
signing_key:
|
|
134
132
|
specification_version: 4
|
|
135
133
|
summary: Forks and manages multiple Sidekiq processes
|
data/.travis.yml
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
rvm:
|
|
3
|
-
- ruby-head
|
|
4
|
-
- 2.7.0
|
|
5
|
-
- 2.6.5
|
|
6
|
-
- 2.5.1
|
|
7
|
-
- 2.4.1
|
|
8
|
-
- 2.3.4
|
|
9
|
-
before_install: gem install bundler
|
|
10
|
-
after_success:
|
|
11
|
-
- >
|
|
12
|
-
[ "${TRAVIS_PULL_REQUEST}" != "false" ] &&
|
|
13
|
-
[ "${TRAVIS_RUBY_VERSION}" = "2.5.1" ] &&
|
|
14
|
-
PRONTO_PULL_REQUEST_ID=${TRAVIS_PULL_REQUEST} \
|
|
15
|
-
bundle exec pronto run -f github_status github_pr -c origin/${TRAVIS_BRANCH}
|