sidekiq-merger 0.0.12 → 0.1.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 +5 -5
- data/.rubocop.yml +16 -16
- data/.travis.yml +3 -3
- data/README.md +8 -0
- data/lib/sidekiq/merger/merge.rb +10 -6
- data/lib/sidekiq/merger/version.rb +1 -1
- data/sidekiq-merger.gemspec +2 -2
- data/spec/sidekiq/merger/merge_spec.rb +40 -11
- data/spec/spec_helper.rb +3 -0
- metadata +9 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 53e070ac5acbed069e9ac6b49e9f43651bdf0e061a8a29d461e5b40111c8c5f7
|
4
|
+
data.tar.gz: 9d08abf9726549e6dacb30a6382591bcb7d86b3bf219c30b4c151b471346872e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8baeb68048097d0e32c31ebb099f658fdb7201bccd8fed439956a60d82fd309d67dec63d4bfd95c4276c72d115c669d8fc49bf0405de789d28f3852725f5950c
|
7
|
+
data.tar.gz: 874696413e3d3d8b37cfa196b7adb72bb01526080017a9a34142cbd051f153568b03372d23ab36ca8944e05883452d440e88d65d20339ca3c5a35031b0402085
|
data/.rubocop.yml
CHANGED
@@ -11,39 +11,42 @@ Style/StringLiteralsInInterpolation:
|
|
11
11
|
Enabled: true
|
12
12
|
EnforcedStyle: double_quotes
|
13
13
|
|
14
|
-
|
14
|
+
Layout/SpaceBeforeBlockBraces:
|
15
15
|
Enabled: true
|
16
16
|
EnforcedStyle: 'space'
|
17
17
|
|
18
|
-
|
18
|
+
Layout/SpaceInsideArrayLiteralBrackets:
|
19
19
|
Enabled: true
|
20
20
|
|
21
|
-
|
21
|
+
Layout/SpaceInsideReferenceBrackets:
|
22
22
|
Enabled: true
|
23
23
|
|
24
|
-
|
24
|
+
Layout/SpaceInsideHashLiteralBraces:
|
25
25
|
Enabled: true
|
26
26
|
|
27
|
-
|
27
|
+
Layout/SpaceInsideBlockBraces:
|
28
28
|
Enabled: true
|
29
29
|
|
30
|
-
|
30
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
31
|
+
Enabled: true
|
32
|
+
|
33
|
+
Layout/SpaceBeforeComma:
|
31
34
|
Enabled: false
|
32
35
|
|
33
|
-
|
36
|
+
Layout/SpaceAroundOperators:
|
34
37
|
Enabled: true
|
35
38
|
|
36
|
-
|
39
|
+
Layout/SpaceAfterComma:
|
37
40
|
Enabled: true
|
38
41
|
|
39
|
-
|
42
|
+
Layout/ExtraSpacing:
|
40
43
|
Enabled: true
|
41
44
|
AllowForAlignment: true
|
42
45
|
|
43
46
|
Lint/DuplicateMethods:
|
44
47
|
Enabled: true
|
45
48
|
|
46
|
-
|
49
|
+
Layout/LineLength:
|
47
50
|
Enabled: true
|
48
51
|
Max: 200
|
49
52
|
AllowHeredoc: true
|
@@ -67,16 +70,13 @@ Style/ClassAndModuleChildren:
|
|
67
70
|
Exclude:
|
68
71
|
- lib/sidekiq/merger/version.rb
|
69
72
|
|
70
|
-
|
71
|
-
Enabled: true
|
72
|
-
|
73
|
-
Style/AlignArray:
|
73
|
+
Layout/ArrayAlignment:
|
74
74
|
Enabled: true
|
75
75
|
|
76
|
-
|
76
|
+
Layout/HashAlignment:
|
77
77
|
Enabled: true
|
78
78
|
|
79
|
-
|
79
|
+
Layout/BlockEndNewline:
|
80
80
|
Enabled: false
|
81
81
|
|
82
82
|
Style/DoubleNegation:
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -105,6 +105,14 @@ Format: `Boolean`
|
|
105
105
|
|
106
106
|
e.g. `true`
|
107
107
|
|
108
|
+
### `batch_size` (optional, default: `nil`)
|
109
|
+
|
110
|
+
Allow to specify how many jobs max to provide as arguments per aggregation
|
111
|
+
|
112
|
+
Format: `Int`
|
113
|
+
|
114
|
+
e.g. `50`
|
115
|
+
|
108
116
|
## Web UI
|
109
117
|
|
110
118
|

|
data/lib/sidekiq/merger/merge.rb
CHANGED
@@ -73,12 +73,16 @@ class Sidekiq::Merger::Merge
|
|
73
73
|
end
|
74
74
|
|
75
75
|
unless msgs.empty?
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
76
|
+
batches = options[:batch_size].nil? ? [msgs] : msgs.each_slice(options[:batch_size].to_i).to_a
|
77
|
+
batches.each do |batch_msgs|
|
78
|
+
# preserve FIFO when enqueuing batches
|
79
|
+
Sidekiq::Client.push(
|
80
|
+
"class" => worker_class,
|
81
|
+
"queue" => queue,
|
82
|
+
"args" => batch_msgs,
|
83
|
+
"merged" => true
|
84
|
+
)
|
85
|
+
end
|
82
86
|
end
|
83
87
|
end
|
84
88
|
|
data/sidekiq-merger.gemspec
CHANGED
@@ -22,13 +22,13 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
-
spec.required_ruby_version = [">= 2.
|
25
|
+
spec.required_ruby_version = [">= 2.5.0"]
|
26
26
|
|
27
27
|
spec.add_development_dependency "rake", ">= 10.0", "< 13"
|
28
28
|
spec.add_development_dependency "rspec", ">= 3.0", "< 4"
|
29
29
|
spec.add_development_dependency "simplecov", "~> 0.12"
|
30
30
|
spec.add_development_dependency "timecop", "~> 0.8"
|
31
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
31
|
+
spec.add_development_dependency "rubocop", "~> 0.93.1"
|
32
32
|
spec.add_development_dependency "coveralls", "~> 0.8"
|
33
33
|
spec.add_development_dependency "appraisal"
|
34
34
|
|
@@ -141,19 +141,48 @@ describe Sidekiq::Merger::Merge, worker_class: true do
|
|
141
141
|
end
|
142
142
|
|
143
143
|
describe "#flush" do
|
144
|
-
|
145
|
-
|
146
|
-
|
144
|
+
context "when no batch_size is configured" do
|
145
|
+
before do
|
146
|
+
subject.add([1, 2, 3], execution_time)
|
147
|
+
subject.add([2, 3, 4], execution_time)
|
148
|
+
end
|
149
|
+
it "flushes all the args" do
|
150
|
+
expect(Sidekiq::Client).to receive(:push).with(
|
151
|
+
"class" => worker_class,
|
152
|
+
"queue" => queue,
|
153
|
+
"args" => a_collection_containing_exactly([1, 2, 3], [2, 3, 4]),
|
154
|
+
"merged" => true
|
155
|
+
)
|
156
|
+
|
157
|
+
subject.flush
|
158
|
+
end
|
147
159
|
end
|
148
|
-
it "flushes all the args" do
|
149
|
-
expect(Sidekiq::Client).to receive(:push).with(
|
150
|
-
"class" => worker_class,
|
151
|
-
"queue" => queue,
|
152
|
-
"args" => a_collection_containing_exactly([1, 2, 3], [2, 3, 4]),
|
153
|
-
"merged" => true
|
154
|
-
)
|
155
160
|
|
156
|
-
|
161
|
+
context "when batch_size is configured to 2" do
|
162
|
+
let(:worker_options) { { key: -> (args) { args.to_json }, batch_size: 2 } }
|
163
|
+
before do
|
164
|
+
subject.add([1, 2, 3], execution_time)
|
165
|
+
subject.add([2, 3, 4], execution_time)
|
166
|
+
subject.add([3, 4, 5], execution_time)
|
167
|
+
subject.add([4, 5, 6], execution_time)
|
168
|
+
end
|
169
|
+
it "flushes all the args" do
|
170
|
+
expect(Sidekiq::Client).to receive(:push).with(
|
171
|
+
"class" => worker_class,
|
172
|
+
"queue" => queue,
|
173
|
+
"args" => a_collection_containing_exactly([1, 2, 3], [2, 3, 4]),
|
174
|
+
"merged" => true
|
175
|
+
)
|
176
|
+
|
177
|
+
expect(Sidekiq::Client).to receive(:push).with(
|
178
|
+
"class" => worker_class,
|
179
|
+
"queue" => queue,
|
180
|
+
"args" => a_collection_containing_exactly([3, 4, 5], [4, 5, 6]),
|
181
|
+
"merged" => true
|
182
|
+
)
|
183
|
+
|
184
|
+
subject.flush
|
185
|
+
end
|
157
186
|
end
|
158
187
|
end
|
159
188
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-merger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dtaniwaki
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
requirements:
|
85
85
|
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
87
|
+
version: 0.93.1
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
92
|
- - "~>"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
94
|
+
version: 0.93.1
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: coveralls
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -237,7 +237,7 @@ homepage: https://github.com/dtaniwaki/sidekiq-merger
|
|
237
237
|
licenses:
|
238
238
|
- MIT
|
239
239
|
metadata: {}
|
240
|
-
post_install_message:
|
240
|
+
post_install_message:
|
241
241
|
rdoc_options: []
|
242
242
|
require_paths:
|
243
243
|
- lib
|
@@ -245,19 +245,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
245
245
|
requirements:
|
246
246
|
- - ">="
|
247
247
|
- !ruby/object:Gem::Version
|
248
|
-
version: 2.
|
249
|
-
- - "<"
|
250
|
-
- !ruby/object:Gem::Version
|
251
|
-
version: '2.6'
|
248
|
+
version: 2.5.0
|
252
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
253
250
|
requirements:
|
254
251
|
- - ">="
|
255
252
|
- !ruby/object:Gem::Version
|
256
253
|
version: '0'
|
257
254
|
requirements: []
|
258
|
-
|
259
|
-
|
260
|
-
signing_key:
|
255
|
+
rubygems_version: 3.1.2
|
256
|
+
signing_key:
|
261
257
|
specification_version: 4
|
262
258
|
summary: Sidekiq merger plugin
|
263
259
|
test_files:
|