HornsAndHooves-sidekiq-limit_fetch 4.5.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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.rspec +5 -0
  4. data/.rubocop.yml +34 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/CHANGELOG.md +37 -0
  8. data/Gemfile +4 -0
  9. data/LICENSE +22 -0
  10. data/README.md +165 -0
  11. data/Rakefile +14 -0
  12. data/bench/compare.rb +56 -0
  13. data/demo/Gemfile +8 -0
  14. data/demo/README.md +37 -0
  15. data/demo/Rakefile +100 -0
  16. data/demo/app/workers/a_worker.rb +10 -0
  17. data/demo/app/workers/b_worker.rb +10 -0
  18. data/demo/app/workers/c_worker.rb +10 -0
  19. data/demo/app/workers/fast_worker.rb +10 -0
  20. data/demo/app/workers/slow_worker.rb +10 -0
  21. data/demo/config/application.rb +13 -0
  22. data/demo/config/boot.rb +4 -0
  23. data/demo/config/environment.rb +4 -0
  24. data/demo/config/environments/development.rb +11 -0
  25. data/lib/sidekiq/extensions/manager.rb +21 -0
  26. data/lib/sidekiq/extensions/queue.rb +27 -0
  27. data/lib/sidekiq/limit_fetch/global/monitor.rb +83 -0
  28. data/lib/sidekiq/limit_fetch/global/selector.rb +130 -0
  29. data/lib/sidekiq/limit_fetch/global/semaphore.rb +190 -0
  30. data/lib/sidekiq/limit_fetch/instances.rb +29 -0
  31. data/lib/sidekiq/limit_fetch/queues.rb +197 -0
  32. data/lib/sidekiq/limit_fetch/unit_of_work.rb +28 -0
  33. data/lib/sidekiq/limit_fetch.rb +76 -0
  34. data/lib/sidekiq-limit_fetch.rb +3 -0
  35. data/sidekiq-limit_fetch.gemspec +30 -0
  36. data/spec/sidekiq/extensions/manager_spec.rb +13 -0
  37. data/spec/sidekiq/extensions/queue_spec.rb +96 -0
  38. data/spec/sidekiq/limit_fetch/global/monitor_spec.rb +114 -0
  39. data/spec/sidekiq/limit_fetch/queues_spec.rb +127 -0
  40. data/spec/sidekiq/limit_fetch/semaphore_spec.rb +65 -0
  41. data/spec/sidekiq/limit_fetch_spec.rb +58 -0
  42. data/spec/spec_helper.rb +34 -0
  43. metadata +179 -0
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: HornsAndHooves-sidekiq-limit_fetch
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.5.0
5
+ platform: ruby
6
+ authors:
7
+ - HornsAndHooves
8
+ - Peter Maneykowski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2026-06-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sidekiq
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '8'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '8'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: redis-namespace
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.5'
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: 1.5.2
52
+ type: :development
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '1.5'
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.5.2
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: rubocop
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ - !ruby/object:Gem::Dependency
91
+ name: simplecov
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ description: Sidekiq strategy to restrict number of workers which are able to run
105
+ specified queues simultaneously.
106
+ email:
107
+ - maneyko@integracredit.com
108
+ executables: []
109
+ extensions: []
110
+ extra_rdoc_files: []
111
+ files:
112
+ - ".gitignore"
113
+ - ".rspec"
114
+ - ".rubocop.yml"
115
+ - ".ruby-gemset"
116
+ - ".ruby-version"
117
+ - CHANGELOG.md
118
+ - Gemfile
119
+ - LICENSE
120
+ - README.md
121
+ - Rakefile
122
+ - bench/compare.rb
123
+ - demo/Gemfile
124
+ - demo/README.md
125
+ - demo/Rakefile
126
+ - demo/app/workers/a_worker.rb
127
+ - demo/app/workers/b_worker.rb
128
+ - demo/app/workers/c_worker.rb
129
+ - demo/app/workers/fast_worker.rb
130
+ - demo/app/workers/slow_worker.rb
131
+ - demo/config/application.rb
132
+ - demo/config/boot.rb
133
+ - demo/config/environment.rb
134
+ - demo/config/environments/development.rb
135
+ - lib/sidekiq-limit_fetch.rb
136
+ - lib/sidekiq/extensions/manager.rb
137
+ - lib/sidekiq/extensions/queue.rb
138
+ - lib/sidekiq/limit_fetch.rb
139
+ - lib/sidekiq/limit_fetch/global/monitor.rb
140
+ - lib/sidekiq/limit_fetch/global/selector.rb
141
+ - lib/sidekiq/limit_fetch/global/semaphore.rb
142
+ - lib/sidekiq/limit_fetch/instances.rb
143
+ - lib/sidekiq/limit_fetch/queues.rb
144
+ - lib/sidekiq/limit_fetch/unit_of_work.rb
145
+ - sidekiq-limit_fetch.gemspec
146
+ - spec/sidekiq/extensions/manager_spec.rb
147
+ - spec/sidekiq/extensions/queue_spec.rb
148
+ - spec/sidekiq/limit_fetch/global/monitor_spec.rb
149
+ - spec/sidekiq/limit_fetch/queues_spec.rb
150
+ - spec/sidekiq/limit_fetch/semaphore_spec.rb
151
+ - spec/sidekiq/limit_fetch_spec.rb
152
+ - spec/spec_helper.rb
153
+ homepage: https://github.com/HornsAndHooves/sidekiq-limit_fetch
154
+ licenses:
155
+ - MIT
156
+ metadata:
157
+ homepage_uri: https://github.com/HornsAndHooves/sidekiq-limit_fetch
158
+ source_code_uri: https://github.com/HornsAndHooves/sidekiq-limit_fetch
159
+ changelog_uri: https://github.com/HornsAndHooves/sidekiq-limit_fetch/blob/master/CHANGELOG.md
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 2.7.0
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubygems_version: 3.5.22
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: Sidekiq strategy to support queue limits
179
+ test_files: []