shoryuken 7.0.0.alpha2 → 7.0.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 (178) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/push.yml +2 -2
  3. data/.github/workflows/specs.yml +38 -43
  4. data/.github/workflows/verify-action-pins.yml +1 -1
  5. data/.gitignore +3 -0
  6. data/.rspec +1 -0
  7. data/.ruby-version +1 -1
  8. data/.yard-lint.yml +279 -0
  9. data/CHANGELOG.md +69 -1
  10. data/Gemfile +1 -1
  11. data/README.md +2 -7
  12. data/Rakefile +4 -10
  13. data/bin/clean_localstack +52 -0
  14. data/bin/cli/base.rb +21 -0
  15. data/bin/cli/sqs.rb +61 -2
  16. data/bin/integrations +275 -0
  17. data/bin/scenario +154 -0
  18. data/bin/shoryuken +1 -1
  19. data/lib/{shoryuken/extensions/active_job_extensions.rb → active_job/extensions.rb} +15 -4
  20. data/lib/active_job/queue_adapters/shoryuken_adapter.rb +208 -0
  21. data/lib/active_job/queue_adapters/shoryuken_concurrent_send_adapter.rb +78 -0
  22. data/lib/shoryuken/active_job/current_attributes.rb +139 -0
  23. data/lib/shoryuken/active_job/job_wrapper.rb +28 -0
  24. data/lib/shoryuken/body_parser.rb +8 -0
  25. data/lib/shoryuken/client.rb +14 -0
  26. data/lib/shoryuken/default_exception_handler.rb +9 -0
  27. data/lib/shoryuken/default_worker_registry.rb +29 -1
  28. data/lib/shoryuken/environment_loader.rb +78 -8
  29. data/lib/shoryuken/errors.rb +33 -0
  30. data/lib/shoryuken/fetcher.rb +37 -1
  31. data/lib/shoryuken/helpers/atomic_boolean.rb +19 -5
  32. data/lib/shoryuken/helpers/timer_task.rb +80 -0
  33. data/lib/shoryuken/launcher.rb +53 -0
  34. data/lib/shoryuken/logging/base.rb +26 -0
  35. data/lib/shoryuken/logging/pretty.rb +25 -0
  36. data/lib/shoryuken/logging/without_timestamp.rb +25 -0
  37. data/lib/shoryuken/logging.rb +39 -25
  38. data/lib/shoryuken/manager.rb +70 -1
  39. data/lib/shoryuken/message.rb +114 -1
  40. data/lib/shoryuken/middleware/chain.rb +139 -43
  41. data/lib/shoryuken/middleware/entry.rb +30 -0
  42. data/lib/shoryuken/middleware/server/active_record.rb +8 -0
  43. data/lib/shoryuken/middleware/server/auto_delete.rb +10 -0
  44. data/lib/shoryuken/middleware/server/auto_extend_visibility.rb +27 -1
  45. data/lib/shoryuken/middleware/server/exponential_backoff_retry.rb +29 -0
  46. data/lib/shoryuken/middleware/server/timing.rb +11 -0
  47. data/lib/shoryuken/options.rb +129 -6
  48. data/lib/shoryuken/polling/base_strategy.rb +1 -0
  49. data/lib/shoryuken/polling/strict_priority.rb +39 -0
  50. data/lib/shoryuken/polling/weighted_round_robin.rb +42 -0
  51. data/lib/shoryuken/processor.rb +32 -1
  52. data/lib/shoryuken/queue.rb +93 -4
  53. data/lib/shoryuken/runner.rb +45 -4
  54. data/lib/shoryuken/util.rb +26 -1
  55. data/lib/shoryuken/version.rb +2 -1
  56. data/lib/shoryuken/worker/default_executor.rb +21 -1
  57. data/lib/shoryuken/worker/inline_executor.rb +24 -0
  58. data/lib/shoryuken/worker.rb +193 -0
  59. data/lib/shoryuken/worker_registry.rb +33 -0
  60. data/lib/shoryuken.rb +18 -6
  61. data/renovate.json +29 -2
  62. data/shoryuken.gemspec +2 -1
  63. data/spec/integration/.rspec +1 -0
  64. data/spec/integration/active_job/adapter_configuration/configuration_spec.rb +26 -0
  65. data/spec/integration/active_job/bulk_enqueue/bulk_enqueue_spec.rb +53 -0
  66. data/spec/integration/active_job/current_attributes/bulk_enqueue_spec.rb +50 -0
  67. data/spec/integration/active_job/current_attributes/complex_types_spec.rb +55 -0
  68. data/spec/integration/active_job/current_attributes/empty_context_spec.rb +41 -0
  69. data/spec/integration/active_job/current_attributes/full_context_spec.rb +63 -0
  70. data/spec/integration/active_job/current_attributes/partial_context_spec.rb +57 -0
  71. data/spec/integration/active_job/custom_attributes/number_attributes_spec.rb +37 -0
  72. data/spec/integration/active_job/custom_attributes/string_attributes_spec.rb +39 -0
  73. data/spec/integration/active_job/error_handling/job_wrapper_spec.rb +53 -0
  74. data/spec/integration/active_job/fifo_and_attributes/deduplication_spec.rb +86 -0
  75. data/spec/integration/active_job/retry/discard_on_spec.rb +43 -0
  76. data/spec/integration/active_job/retry/retry_on_spec.rb +36 -0
  77. data/spec/integration/active_job/roundtrip/roundtrip_spec.rb +52 -0
  78. data/spec/integration/active_job/scheduled/scheduled_spec.rb +76 -0
  79. data/spec/integration/active_record_middleware/active_record_middleware_spec.rb +84 -0
  80. data/spec/integration/auto_delete/auto_delete_spec.rb +53 -0
  81. data/spec/integration/auto_extend_visibility/auto_extend_visibility_spec.rb +57 -0
  82. data/spec/integration/aws_config/aws_config_spec.rb +59 -0
  83. data/spec/integration/batch_processing/batch_processing_spec.rb +37 -0
  84. data/spec/integration/body_parser/json_parser_spec.rb +45 -0
  85. data/spec/integration/body_parser/proc_parser_spec.rb +54 -0
  86. data/spec/integration/body_parser/text_parser_spec.rb +43 -0
  87. data/spec/integration/concurrent_processing/concurrent_processing_spec.rb +45 -0
  88. data/spec/integration/dead_letter_queue/dead_letter_queue_spec.rb +91 -0
  89. data/spec/integration/exception_handlers/exception_handlers_spec.rb +69 -0
  90. data/spec/integration/exponential_backoff/exponential_backoff_spec.rb +67 -0
  91. data/spec/integration/fifo_ordering/fifo_ordering_spec.rb +44 -0
  92. data/spec/integration/large_payloads/large_payloads_spec.rb +30 -0
  93. data/spec/integration/launcher/launcher_spec.rb +40 -0
  94. data/spec/integration/message_attributes/message_attributes_spec.rb +54 -0
  95. data/spec/integration/message_operations/message_operations_spec.rb +59 -0
  96. data/spec/integration/middleware_chain/empty_chain_spec.rb +11 -0
  97. data/spec/integration/middleware_chain/execution_order_spec.rb +33 -0
  98. data/spec/integration/middleware_chain/removal_spec.rb +31 -0
  99. data/spec/integration/middleware_chain/short_circuit_spec.rb +40 -0
  100. data/spec/integration/polling_strategies/polling_strategies_spec.rb +46 -0
  101. data/spec/integration/queue_operations/queue_operations_spec.rb +84 -0
  102. data/spec/integration/rails/rails_72/Gemfile +6 -0
  103. data/spec/integration/rails/rails_72/activejob_adapter_spec.rb +98 -0
  104. data/spec/integration/rails/rails_80/Gemfile +6 -0
  105. data/spec/integration/rails/rails_80/activejob_adapter_spec.rb +98 -0
  106. data/spec/integration/rails/rails_80/continuation_spec.rb +79 -0
  107. data/spec/integration/rails/rails_81/Gemfile +6 -0
  108. data/spec/integration/rails/rails_81/activejob_adapter_spec.rb +98 -0
  109. data/spec/integration/rails/rails_81/continuation_spec.rb +79 -0
  110. data/spec/integration/retry_behavior/retry_behavior_spec.rb +45 -0
  111. data/spec/integration/spec_helper.rb +7 -0
  112. data/spec/integration/strict_priority_polling/strict_priority_polling_spec.rb +58 -0
  113. data/spec/integration/visibility_timeout/visibility_timeout_spec.rb +37 -0
  114. data/spec/integration/worker_enqueueing/worker_enqueueing_spec.rb +60 -0
  115. data/spec/integration/worker_groups/worker_groups_spec.rb +79 -0
  116. data/spec/integration/worker_lifecycle/worker_lifecycle_spec.rb +33 -0
  117. data/spec/integrations_helper.rb +243 -0
  118. data/spec/lib/active_job/extensions_spec.rb +149 -0
  119. data/spec/lib/active_job/queue_adapters/shoryuken_adapter_spec.rb +29 -0
  120. data/spec/{shoryuken/extensions/active_job_concurrent_send_adapter_spec.rb → lib/active_job/queue_adapters/shoryuken_concurrent_send_adapter_spec.rb} +3 -3
  121. data/spec/{shoryuken/extensions/active_job_wrapper_spec.rb → lib/shoryuken/active_job/job_wrapper_spec.rb} +4 -4
  122. data/spec/{shoryuken → lib/shoryuken}/environment_loader_spec.rb +1 -1
  123. data/spec/{shoryuken → lib/shoryuken}/helpers/hash_utils_spec.rb +14 -14
  124. data/spec/{shoryuken → lib/shoryuken}/helpers/string_utils_spec.rb +3 -3
  125. data/spec/lib/shoryuken/helpers/timer_task_spec.rb +298 -0
  126. data/spec/{shoryuken → lib/shoryuken}/helpers_integration_spec.rb +9 -9
  127. data/spec/{shoryuken → lib/shoryuken}/launcher_spec.rb +22 -0
  128. data/spec/lib/shoryuken/logging_spec.rb +242 -0
  129. data/spec/lib/shoryuken/message_spec.rb +109 -0
  130. data/spec/lib/shoryuken/middleware/entry_spec.rb +68 -0
  131. data/spec/lib/shoryuken/middleware/server/active_record_spec.rb +133 -0
  132. data/spec/{shoryuken → lib/shoryuken}/middleware/server/auto_extend_visibility_spec.rb +50 -0
  133. data/spec/{shoryuken → lib/shoryuken}/options_spec.rb +2 -2
  134. data/spec/{shoryuken → lib/shoryuken}/util_spec.rb +1 -1
  135. data/spec/lib/shoryuken/version_spec.rb +17 -0
  136. data/spec/lib/shoryuken/worker_registry_spec.rb +63 -0
  137. data/spec/shared_examples_for_active_job.rb +29 -9
  138. data/spec/spec_helper.rb +34 -3
  139. metadata +230 -91
  140. data/.devcontainer/Dockerfile +0 -17
  141. data/.devcontainer/base.Dockerfile +0 -43
  142. data/.devcontainer/devcontainer.json +0 -35
  143. data/Appraisals +0 -23
  144. data/gemfiles/.gitignore +0 -1
  145. data/gemfiles/rails_7_0.gemfile +0 -19
  146. data/gemfiles/rails_7_1.gemfile +0 -19
  147. data/gemfiles/rails_7_2.gemfile +0 -19
  148. data/gemfiles/rails_8_0.gemfile +0 -19
  149. data/lib/shoryuken/extensions/active_job_adapter.rb +0 -110
  150. data/lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb +0 -50
  151. data/spec/integration/launcher_spec.rb +0 -127
  152. data/spec/shoryuken/extensions/active_job_adapter_spec.rb +0 -8
  153. data/spec/shoryuken/extensions/active_job_base_spec.rb +0 -85
  154. /data/spec/{shoryuken → lib/shoryuken}/body_parser_spec.rb +0 -0
  155. /data/spec/{shoryuken → lib/shoryuken}/client_spec.rb +0 -0
  156. /data/spec/{shoryuken → lib/shoryuken}/default_exception_handler_spec.rb +0 -0
  157. /data/spec/{shoryuken → lib/shoryuken}/default_worker_registry_spec.rb +0 -0
  158. /data/spec/{shoryuken → lib/shoryuken}/fetcher_spec.rb +0 -0
  159. /data/spec/{shoryuken → lib/shoryuken}/helpers/atomic_boolean_spec.rb +0 -0
  160. /data/spec/{shoryuken → lib/shoryuken}/helpers/atomic_counter_spec.rb +0 -0
  161. /data/spec/{shoryuken → lib/shoryuken}/helpers/atomic_hash_spec.rb +0 -0
  162. /data/spec/{shoryuken → lib/shoryuken}/inline_message_spec.rb +0 -0
  163. /data/spec/{shoryuken → lib/shoryuken}/manager_spec.rb +0 -0
  164. /data/spec/{shoryuken → lib/shoryuken}/middleware/chain_spec.rb +0 -0
  165. /data/spec/{shoryuken → lib/shoryuken}/middleware/server/auto_delete_spec.rb +0 -0
  166. /data/spec/{shoryuken → lib/shoryuken}/middleware/server/exponential_backoff_retry_spec.rb +0 -0
  167. /data/spec/{shoryuken → lib/shoryuken}/middleware/server/timing_spec.rb +0 -0
  168. /data/spec/{shoryuken → lib/shoryuken}/polling/base_strategy_spec.rb +0 -0
  169. /data/spec/{shoryuken → lib/shoryuken}/polling/queue_configuration_spec.rb +0 -0
  170. /data/spec/{shoryuken → lib/shoryuken}/polling/strict_priority_spec.rb +0 -0
  171. /data/spec/{shoryuken → lib/shoryuken}/polling/weighted_round_robin_spec.rb +0 -0
  172. /data/spec/{shoryuken → lib/shoryuken}/processor_spec.rb +0 -0
  173. /data/spec/{shoryuken → lib/shoryuken}/queue_spec.rb +0 -0
  174. /data/spec/{shoryuken → lib/shoryuken}/runner_spec.rb +0 -0
  175. /data/spec/{shoryuken → lib/shoryuken}/worker/default_executor_spec.rb +0 -0
  176. /data/spec/{shoryuken → lib/shoryuken}/worker/inline_executor_spec.rb +0 -0
  177. /data/spec/{shoryuken → lib/shoryuken}/worker_spec.rb +0 -0
  178. /data/spec/{shoryuken_spec.rb → lib/shoryuken_spec.rb} +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoryuken
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0.alpha2
4
+ version: 7.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Cantero
@@ -121,6 +121,20 @@ dependencies:
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: warning
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
124
138
  description: Shoryuken is a super efficient AWS SQS thread based message processor
125
139
  email:
126
140
  - pablo@pablocantero.com
@@ -129,9 +143,6 @@ executables:
129
143
  extensions: []
130
144
  extra_rdoc_files: []
131
145
  files:
132
- - ".devcontainer/Dockerfile"
133
- - ".devcontainer/base.Dockerfile"
134
- - ".devcontainer/devcontainer.json"
135
146
  - ".github/workflows/push.yml"
136
147
  - ".github/workflows/specs.yml"
137
148
  - ".github/workflows/verify-action-pins.yml"
@@ -139,44 +150,50 @@ files:
139
150
  - ".rspec"
140
151
  - ".rubocop.yml"
141
152
  - ".ruby-version"
142
- - Appraisals
153
+ - ".yard-lint.yml"
143
154
  - CHANGELOG.md
144
155
  - Gemfile
145
156
  - LICENSE
146
157
  - README.md
147
158
  - Rakefile
159
+ - bin/clean_localstack
148
160
  - bin/cli/base.rb
149
161
  - bin/cli/sqs.rb
162
+ - bin/integrations
163
+ - bin/scenario
150
164
  - bin/shoryuken
151
165
  - docker-compose.yml
152
166
  - examples/bootstrap_queues.rb
153
167
  - examples/default_worker.rb
154
- - gemfiles/.gitignore
155
- - gemfiles/rails_7_0.gemfile
156
- - gemfiles/rails_7_1.gemfile
157
- - gemfiles/rails_7_2.gemfile
158
- - gemfiles/rails_8_0.gemfile
168
+ - lib/active_job/extensions.rb
169
+ - lib/active_job/queue_adapters/shoryuken_adapter.rb
170
+ - lib/active_job/queue_adapters/shoryuken_concurrent_send_adapter.rb
159
171
  - lib/shoryuken.rb
172
+ - lib/shoryuken/active_job/current_attributes.rb
173
+ - lib/shoryuken/active_job/job_wrapper.rb
160
174
  - lib/shoryuken/body_parser.rb
161
175
  - lib/shoryuken/client.rb
162
176
  - lib/shoryuken/default_exception_handler.rb
163
177
  - lib/shoryuken/default_worker_registry.rb
164
178
  - lib/shoryuken/environment_loader.rb
165
- - lib/shoryuken/extensions/active_job_adapter.rb
166
- - lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb
167
- - lib/shoryuken/extensions/active_job_extensions.rb
179
+ - lib/shoryuken/errors.rb
168
180
  - lib/shoryuken/fetcher.rb
169
181
  - lib/shoryuken/helpers/atomic_boolean.rb
170
182
  - lib/shoryuken/helpers/atomic_counter.rb
171
183
  - lib/shoryuken/helpers/atomic_hash.rb
172
184
  - lib/shoryuken/helpers/hash_utils.rb
173
185
  - lib/shoryuken/helpers/string_utils.rb
186
+ - lib/shoryuken/helpers/timer_task.rb
174
187
  - lib/shoryuken/inline_message.rb
175
188
  - lib/shoryuken/launcher.rb
176
189
  - lib/shoryuken/logging.rb
190
+ - lib/shoryuken/logging/base.rb
191
+ - lib/shoryuken/logging/pretty.rb
192
+ - lib/shoryuken/logging/without_timestamp.rb
177
193
  - lib/shoryuken/manager.rb
178
194
  - lib/shoryuken/message.rb
179
195
  - lib/shoryuken/middleware/chain.rb
196
+ - lib/shoryuken/middleware/entry.rb
180
197
  - lib/shoryuken/middleware/server/active_record.rb
181
198
  - lib/shoryuken/middleware/server/auto_delete.rb
182
199
  - lib/shoryuken/middleware/server/auto_extend_visibility.rb
@@ -198,46 +215,107 @@ files:
198
215
  - lib/shoryuken/worker_registry.rb
199
216
  - renovate.json
200
217
  - shoryuken.gemspec
201
- - spec/integration/launcher_spec.rb
218
+ - spec/integration/.rspec
219
+ - spec/integration/active_job/adapter_configuration/configuration_spec.rb
220
+ - spec/integration/active_job/bulk_enqueue/bulk_enqueue_spec.rb
221
+ - spec/integration/active_job/current_attributes/bulk_enqueue_spec.rb
222
+ - spec/integration/active_job/current_attributes/complex_types_spec.rb
223
+ - spec/integration/active_job/current_attributes/empty_context_spec.rb
224
+ - spec/integration/active_job/current_attributes/full_context_spec.rb
225
+ - spec/integration/active_job/current_attributes/partial_context_spec.rb
226
+ - spec/integration/active_job/custom_attributes/number_attributes_spec.rb
227
+ - spec/integration/active_job/custom_attributes/string_attributes_spec.rb
228
+ - spec/integration/active_job/error_handling/job_wrapper_spec.rb
229
+ - spec/integration/active_job/fifo_and_attributes/deduplication_spec.rb
230
+ - spec/integration/active_job/retry/discard_on_spec.rb
231
+ - spec/integration/active_job/retry/retry_on_spec.rb
232
+ - spec/integration/active_job/roundtrip/roundtrip_spec.rb
233
+ - spec/integration/active_job/scheduled/scheduled_spec.rb
234
+ - spec/integration/active_record_middleware/active_record_middleware_spec.rb
235
+ - spec/integration/auto_delete/auto_delete_spec.rb
236
+ - spec/integration/auto_extend_visibility/auto_extend_visibility_spec.rb
237
+ - spec/integration/aws_config/aws_config_spec.rb
238
+ - spec/integration/batch_processing/batch_processing_spec.rb
239
+ - spec/integration/body_parser/json_parser_spec.rb
240
+ - spec/integration/body_parser/proc_parser_spec.rb
241
+ - spec/integration/body_parser/text_parser_spec.rb
242
+ - spec/integration/concurrent_processing/concurrent_processing_spec.rb
243
+ - spec/integration/dead_letter_queue/dead_letter_queue_spec.rb
244
+ - spec/integration/exception_handlers/exception_handlers_spec.rb
245
+ - spec/integration/exponential_backoff/exponential_backoff_spec.rb
246
+ - spec/integration/fifo_ordering/fifo_ordering_spec.rb
247
+ - spec/integration/large_payloads/large_payloads_spec.rb
248
+ - spec/integration/launcher/launcher_spec.rb
249
+ - spec/integration/message_attributes/message_attributes_spec.rb
250
+ - spec/integration/message_operations/message_operations_spec.rb
251
+ - spec/integration/middleware_chain/empty_chain_spec.rb
252
+ - spec/integration/middleware_chain/execution_order_spec.rb
253
+ - spec/integration/middleware_chain/removal_spec.rb
254
+ - spec/integration/middleware_chain/short_circuit_spec.rb
255
+ - spec/integration/polling_strategies/polling_strategies_spec.rb
256
+ - spec/integration/queue_operations/queue_operations_spec.rb
257
+ - spec/integration/rails/rails_72/Gemfile
258
+ - spec/integration/rails/rails_72/activejob_adapter_spec.rb
259
+ - spec/integration/rails/rails_80/Gemfile
260
+ - spec/integration/rails/rails_80/activejob_adapter_spec.rb
261
+ - spec/integration/rails/rails_80/continuation_spec.rb
262
+ - spec/integration/rails/rails_81/Gemfile
263
+ - spec/integration/rails/rails_81/activejob_adapter_spec.rb
264
+ - spec/integration/rails/rails_81/continuation_spec.rb
265
+ - spec/integration/retry_behavior/retry_behavior_spec.rb
266
+ - spec/integration/spec_helper.rb
267
+ - spec/integration/strict_priority_polling/strict_priority_polling_spec.rb
268
+ - spec/integration/visibility_timeout/visibility_timeout_spec.rb
269
+ - spec/integration/worker_enqueueing/worker_enqueueing_spec.rb
270
+ - spec/integration/worker_groups/worker_groups_spec.rb
271
+ - spec/integration/worker_lifecycle/worker_lifecycle_spec.rb
272
+ - spec/integrations_helper.rb
273
+ - spec/lib/active_job/extensions_spec.rb
274
+ - spec/lib/active_job/queue_adapters/shoryuken_adapter_spec.rb
275
+ - spec/lib/active_job/queue_adapters/shoryuken_concurrent_send_adapter_spec.rb
276
+ - spec/lib/shoryuken/active_job/job_wrapper_spec.rb
277
+ - spec/lib/shoryuken/body_parser_spec.rb
278
+ - spec/lib/shoryuken/client_spec.rb
279
+ - spec/lib/shoryuken/default_exception_handler_spec.rb
280
+ - spec/lib/shoryuken/default_worker_registry_spec.rb
281
+ - spec/lib/shoryuken/environment_loader_spec.rb
282
+ - spec/lib/shoryuken/fetcher_spec.rb
283
+ - spec/lib/shoryuken/helpers/atomic_boolean_spec.rb
284
+ - spec/lib/shoryuken/helpers/atomic_counter_spec.rb
285
+ - spec/lib/shoryuken/helpers/atomic_hash_spec.rb
286
+ - spec/lib/shoryuken/helpers/hash_utils_spec.rb
287
+ - spec/lib/shoryuken/helpers/string_utils_spec.rb
288
+ - spec/lib/shoryuken/helpers/timer_task_spec.rb
289
+ - spec/lib/shoryuken/helpers_integration_spec.rb
290
+ - spec/lib/shoryuken/inline_message_spec.rb
291
+ - spec/lib/shoryuken/launcher_spec.rb
292
+ - spec/lib/shoryuken/logging_spec.rb
293
+ - spec/lib/shoryuken/manager_spec.rb
294
+ - spec/lib/shoryuken/message_spec.rb
295
+ - spec/lib/shoryuken/middleware/chain_spec.rb
296
+ - spec/lib/shoryuken/middleware/entry_spec.rb
297
+ - spec/lib/shoryuken/middleware/server/active_record_spec.rb
298
+ - spec/lib/shoryuken/middleware/server/auto_delete_spec.rb
299
+ - spec/lib/shoryuken/middleware/server/auto_extend_visibility_spec.rb
300
+ - spec/lib/shoryuken/middleware/server/exponential_backoff_retry_spec.rb
301
+ - spec/lib/shoryuken/middleware/server/timing_spec.rb
302
+ - spec/lib/shoryuken/options_spec.rb
303
+ - spec/lib/shoryuken/polling/base_strategy_spec.rb
304
+ - spec/lib/shoryuken/polling/queue_configuration_spec.rb
305
+ - spec/lib/shoryuken/polling/strict_priority_spec.rb
306
+ - spec/lib/shoryuken/polling/weighted_round_robin_spec.rb
307
+ - spec/lib/shoryuken/processor_spec.rb
308
+ - spec/lib/shoryuken/queue_spec.rb
309
+ - spec/lib/shoryuken/runner_spec.rb
310
+ - spec/lib/shoryuken/util_spec.rb
311
+ - spec/lib/shoryuken/version_spec.rb
312
+ - spec/lib/shoryuken/worker/default_executor_spec.rb
313
+ - spec/lib/shoryuken/worker/inline_executor_spec.rb
314
+ - spec/lib/shoryuken/worker_registry_spec.rb
315
+ - spec/lib/shoryuken/worker_spec.rb
316
+ - spec/lib/shoryuken_spec.rb
202
317
  - spec/shared_examples_for_active_job.rb
203
318
  - spec/shoryuken.yml
204
- - spec/shoryuken/body_parser_spec.rb
205
- - spec/shoryuken/client_spec.rb
206
- - spec/shoryuken/default_exception_handler_spec.rb
207
- - spec/shoryuken/default_worker_registry_spec.rb
208
- - spec/shoryuken/environment_loader_spec.rb
209
- - spec/shoryuken/extensions/active_job_adapter_spec.rb
210
- - spec/shoryuken/extensions/active_job_base_spec.rb
211
- - spec/shoryuken/extensions/active_job_concurrent_send_adapter_spec.rb
212
- - spec/shoryuken/extensions/active_job_wrapper_spec.rb
213
- - spec/shoryuken/fetcher_spec.rb
214
- - spec/shoryuken/helpers/atomic_boolean_spec.rb
215
- - spec/shoryuken/helpers/atomic_counter_spec.rb
216
- - spec/shoryuken/helpers/atomic_hash_spec.rb
217
- - spec/shoryuken/helpers/hash_utils_spec.rb
218
- - spec/shoryuken/helpers/string_utils_spec.rb
219
- - spec/shoryuken/helpers_integration_spec.rb
220
- - spec/shoryuken/inline_message_spec.rb
221
- - spec/shoryuken/launcher_spec.rb
222
- - spec/shoryuken/manager_spec.rb
223
- - spec/shoryuken/middleware/chain_spec.rb
224
- - spec/shoryuken/middleware/server/auto_delete_spec.rb
225
- - spec/shoryuken/middleware/server/auto_extend_visibility_spec.rb
226
- - spec/shoryuken/middleware/server/exponential_backoff_retry_spec.rb
227
- - spec/shoryuken/middleware/server/timing_spec.rb
228
- - spec/shoryuken/options_spec.rb
229
- - spec/shoryuken/polling/base_strategy_spec.rb
230
- - spec/shoryuken/polling/queue_configuration_spec.rb
231
- - spec/shoryuken/polling/strict_priority_spec.rb
232
- - spec/shoryuken/polling/weighted_round_robin_spec.rb
233
- - spec/shoryuken/processor_spec.rb
234
- - spec/shoryuken/queue_spec.rb
235
- - spec/shoryuken/runner_spec.rb
236
- - spec/shoryuken/util_spec.rb
237
- - spec/shoryuken/worker/default_executor_spec.rb
238
- - spec/shoryuken/worker/inline_executor_spec.rb
239
- - spec/shoryuken/worker_spec.rb
240
- - spec/shoryuken_spec.rb
241
319
  - spec/spec_helper.rb
242
320
  - test_workers/endless_interruptive_worker.rb
243
321
  - test_workers/endless_uninterruptive_worker.rb
@@ -252,55 +330,116 @@ required_ruby_version: !ruby/object:Gem::Requirement
252
330
  requirements:
253
331
  - - ">="
254
332
  - !ruby/object:Gem::Version
255
- version: 3.1.0
333
+ version: 3.2.0
256
334
  required_rubygems_version: !ruby/object:Gem::Requirement
257
335
  requirements:
258
336
  - - ">="
259
337
  - !ruby/object:Gem::Version
260
338
  version: '0'
261
339
  requirements: []
262
- rubygems_version: 3.6.9
340
+ rubygems_version: 4.0.3
263
341
  specification_version: 4
264
342
  summary: Shoryuken is a super efficient AWS SQS thread based message processor
265
343
  test_files:
266
- - spec/integration/launcher_spec.rb
344
+ - spec/integration/.rspec
345
+ - spec/integration/active_job/adapter_configuration/configuration_spec.rb
346
+ - spec/integration/active_job/bulk_enqueue/bulk_enqueue_spec.rb
347
+ - spec/integration/active_job/current_attributes/bulk_enqueue_spec.rb
348
+ - spec/integration/active_job/current_attributes/complex_types_spec.rb
349
+ - spec/integration/active_job/current_attributes/empty_context_spec.rb
350
+ - spec/integration/active_job/current_attributes/full_context_spec.rb
351
+ - spec/integration/active_job/current_attributes/partial_context_spec.rb
352
+ - spec/integration/active_job/custom_attributes/number_attributes_spec.rb
353
+ - spec/integration/active_job/custom_attributes/string_attributes_spec.rb
354
+ - spec/integration/active_job/error_handling/job_wrapper_spec.rb
355
+ - spec/integration/active_job/fifo_and_attributes/deduplication_spec.rb
356
+ - spec/integration/active_job/retry/discard_on_spec.rb
357
+ - spec/integration/active_job/retry/retry_on_spec.rb
358
+ - spec/integration/active_job/roundtrip/roundtrip_spec.rb
359
+ - spec/integration/active_job/scheduled/scheduled_spec.rb
360
+ - spec/integration/active_record_middleware/active_record_middleware_spec.rb
361
+ - spec/integration/auto_delete/auto_delete_spec.rb
362
+ - spec/integration/auto_extend_visibility/auto_extend_visibility_spec.rb
363
+ - spec/integration/aws_config/aws_config_spec.rb
364
+ - spec/integration/batch_processing/batch_processing_spec.rb
365
+ - spec/integration/body_parser/json_parser_spec.rb
366
+ - spec/integration/body_parser/proc_parser_spec.rb
367
+ - spec/integration/body_parser/text_parser_spec.rb
368
+ - spec/integration/concurrent_processing/concurrent_processing_spec.rb
369
+ - spec/integration/dead_letter_queue/dead_letter_queue_spec.rb
370
+ - spec/integration/exception_handlers/exception_handlers_spec.rb
371
+ - spec/integration/exponential_backoff/exponential_backoff_spec.rb
372
+ - spec/integration/fifo_ordering/fifo_ordering_spec.rb
373
+ - spec/integration/large_payloads/large_payloads_spec.rb
374
+ - spec/integration/launcher/launcher_spec.rb
375
+ - spec/integration/message_attributes/message_attributes_spec.rb
376
+ - spec/integration/message_operations/message_operations_spec.rb
377
+ - spec/integration/middleware_chain/empty_chain_spec.rb
378
+ - spec/integration/middleware_chain/execution_order_spec.rb
379
+ - spec/integration/middleware_chain/removal_spec.rb
380
+ - spec/integration/middleware_chain/short_circuit_spec.rb
381
+ - spec/integration/polling_strategies/polling_strategies_spec.rb
382
+ - spec/integration/queue_operations/queue_operations_spec.rb
383
+ - spec/integration/rails/rails_72/Gemfile
384
+ - spec/integration/rails/rails_72/activejob_adapter_spec.rb
385
+ - spec/integration/rails/rails_80/Gemfile
386
+ - spec/integration/rails/rails_80/activejob_adapter_spec.rb
387
+ - spec/integration/rails/rails_80/continuation_spec.rb
388
+ - spec/integration/rails/rails_81/Gemfile
389
+ - spec/integration/rails/rails_81/activejob_adapter_spec.rb
390
+ - spec/integration/rails/rails_81/continuation_spec.rb
391
+ - spec/integration/retry_behavior/retry_behavior_spec.rb
392
+ - spec/integration/spec_helper.rb
393
+ - spec/integration/strict_priority_polling/strict_priority_polling_spec.rb
394
+ - spec/integration/visibility_timeout/visibility_timeout_spec.rb
395
+ - spec/integration/worker_enqueueing/worker_enqueueing_spec.rb
396
+ - spec/integration/worker_groups/worker_groups_spec.rb
397
+ - spec/integration/worker_lifecycle/worker_lifecycle_spec.rb
398
+ - spec/integrations_helper.rb
399
+ - spec/lib/active_job/extensions_spec.rb
400
+ - spec/lib/active_job/queue_adapters/shoryuken_adapter_spec.rb
401
+ - spec/lib/active_job/queue_adapters/shoryuken_concurrent_send_adapter_spec.rb
402
+ - spec/lib/shoryuken/active_job/job_wrapper_spec.rb
403
+ - spec/lib/shoryuken/body_parser_spec.rb
404
+ - spec/lib/shoryuken/client_spec.rb
405
+ - spec/lib/shoryuken/default_exception_handler_spec.rb
406
+ - spec/lib/shoryuken/default_worker_registry_spec.rb
407
+ - spec/lib/shoryuken/environment_loader_spec.rb
408
+ - spec/lib/shoryuken/fetcher_spec.rb
409
+ - spec/lib/shoryuken/helpers/atomic_boolean_spec.rb
410
+ - spec/lib/shoryuken/helpers/atomic_counter_spec.rb
411
+ - spec/lib/shoryuken/helpers/atomic_hash_spec.rb
412
+ - spec/lib/shoryuken/helpers/hash_utils_spec.rb
413
+ - spec/lib/shoryuken/helpers/string_utils_spec.rb
414
+ - spec/lib/shoryuken/helpers/timer_task_spec.rb
415
+ - spec/lib/shoryuken/helpers_integration_spec.rb
416
+ - spec/lib/shoryuken/inline_message_spec.rb
417
+ - spec/lib/shoryuken/launcher_spec.rb
418
+ - spec/lib/shoryuken/logging_spec.rb
419
+ - spec/lib/shoryuken/manager_spec.rb
420
+ - spec/lib/shoryuken/message_spec.rb
421
+ - spec/lib/shoryuken/middleware/chain_spec.rb
422
+ - spec/lib/shoryuken/middleware/entry_spec.rb
423
+ - spec/lib/shoryuken/middleware/server/active_record_spec.rb
424
+ - spec/lib/shoryuken/middleware/server/auto_delete_spec.rb
425
+ - spec/lib/shoryuken/middleware/server/auto_extend_visibility_spec.rb
426
+ - spec/lib/shoryuken/middleware/server/exponential_backoff_retry_spec.rb
427
+ - spec/lib/shoryuken/middleware/server/timing_spec.rb
428
+ - spec/lib/shoryuken/options_spec.rb
429
+ - spec/lib/shoryuken/polling/base_strategy_spec.rb
430
+ - spec/lib/shoryuken/polling/queue_configuration_spec.rb
431
+ - spec/lib/shoryuken/polling/strict_priority_spec.rb
432
+ - spec/lib/shoryuken/polling/weighted_round_robin_spec.rb
433
+ - spec/lib/shoryuken/processor_spec.rb
434
+ - spec/lib/shoryuken/queue_spec.rb
435
+ - spec/lib/shoryuken/runner_spec.rb
436
+ - spec/lib/shoryuken/util_spec.rb
437
+ - spec/lib/shoryuken/version_spec.rb
438
+ - spec/lib/shoryuken/worker/default_executor_spec.rb
439
+ - spec/lib/shoryuken/worker/inline_executor_spec.rb
440
+ - spec/lib/shoryuken/worker_registry_spec.rb
441
+ - spec/lib/shoryuken/worker_spec.rb
442
+ - spec/lib/shoryuken_spec.rb
267
443
  - spec/shared_examples_for_active_job.rb
268
444
  - spec/shoryuken.yml
269
- - spec/shoryuken/body_parser_spec.rb
270
- - spec/shoryuken/client_spec.rb
271
- - spec/shoryuken/default_exception_handler_spec.rb
272
- - spec/shoryuken/default_worker_registry_spec.rb
273
- - spec/shoryuken/environment_loader_spec.rb
274
- - spec/shoryuken/extensions/active_job_adapter_spec.rb
275
- - spec/shoryuken/extensions/active_job_base_spec.rb
276
- - spec/shoryuken/extensions/active_job_concurrent_send_adapter_spec.rb
277
- - spec/shoryuken/extensions/active_job_wrapper_spec.rb
278
- - spec/shoryuken/fetcher_spec.rb
279
- - spec/shoryuken/helpers/atomic_boolean_spec.rb
280
- - spec/shoryuken/helpers/atomic_counter_spec.rb
281
- - spec/shoryuken/helpers/atomic_hash_spec.rb
282
- - spec/shoryuken/helpers/hash_utils_spec.rb
283
- - spec/shoryuken/helpers/string_utils_spec.rb
284
- - spec/shoryuken/helpers_integration_spec.rb
285
- - spec/shoryuken/inline_message_spec.rb
286
- - spec/shoryuken/launcher_spec.rb
287
- - spec/shoryuken/manager_spec.rb
288
- - spec/shoryuken/middleware/chain_spec.rb
289
- - spec/shoryuken/middleware/server/auto_delete_spec.rb
290
- - spec/shoryuken/middleware/server/auto_extend_visibility_spec.rb
291
- - spec/shoryuken/middleware/server/exponential_backoff_retry_spec.rb
292
- - spec/shoryuken/middleware/server/timing_spec.rb
293
- - spec/shoryuken/options_spec.rb
294
- - spec/shoryuken/polling/base_strategy_spec.rb
295
- - spec/shoryuken/polling/queue_configuration_spec.rb
296
- - spec/shoryuken/polling/strict_priority_spec.rb
297
- - spec/shoryuken/polling/weighted_round_robin_spec.rb
298
- - spec/shoryuken/processor_spec.rb
299
- - spec/shoryuken/queue_spec.rb
300
- - spec/shoryuken/runner_spec.rb
301
- - spec/shoryuken/util_spec.rb
302
- - spec/shoryuken/worker/default_executor_spec.rb
303
- - spec/shoryuken/worker/inline_executor_spec.rb
304
- - spec/shoryuken/worker_spec.rb
305
- - spec/shoryuken_spec.rb
306
445
  - spec/spec_helper.rb
@@ -1,17 +0,0 @@
1
- # [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
2
- ARG VARIANT=2-bullseye
3
- FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
4
-
5
- # [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
6
- ARG NODE_VERSION="none"
7
- RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
8
-
9
- # [Optional] Uncomment this section to install additional OS packages.
10
- # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
11
- # && apt-get -y install --no-install-recommends <your-package-list-here>
12
-
13
- # [Optional] Uncomment this line to install additional gems.
14
- # RUN gem install <your-gem-names-here>
15
-
16
- # [Optional] Uncomment this line to install global node packages.
17
- # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
@@ -1,43 +0,0 @@
1
- # [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
2
- ARG VARIANT=3-bullseye
3
- FROM ruby:${VARIANT}
4
-
5
- # Copy library scripts to execute
6
- COPY library-scripts/*.sh library-scripts/*.env /tmp/library-scripts/
7
-
8
- # [Option] Install zsh
9
- ARG INSTALL_ZSH="true"
10
- # [Option] Upgrade OS packages to their latest versions
11
- ARG UPGRADE_PACKAGES="true"
12
- # Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
13
- ARG USERNAME=vscode
14
- ARG USER_UID=1000
15
- ARG USER_GID=$USER_UID
16
- RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
17
- # Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131
18
- && apt-get purge -y imagemagick imagemagick-6-common \
19
- # Install common packages, non-root user, rvm, core build tools
20
- && bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "true" \
21
- && bash /tmp/library-scripts/ruby-debian.sh "none" "${USERNAME}" "true" "true" \
22
- && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
23
-
24
- # [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
25
- ARG NODE_VERSION="none"
26
- ENV NVM_DIR=/usr/local/share/nvm
27
- ENV NVM_SYMLINK_CURRENT=true \
28
- PATH=${NVM_DIR}/current/bin:${PATH}
29
- RUN bash /tmp/library-scripts/node-debian.sh "${NVM_DIR}" "${NODE_VERSION}" "${USERNAME}" \
30
- && apt-get clean -y && rm -rf /var/lib/apt/lists/*
31
-
32
- # Remove library scripts for final image
33
- RUN rm -rf /tmp/library-scripts
34
-
35
- # [Optional] Uncomment this section to install additional OS packages.
36
- # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
37
- # && apt-get -y install --no-install-recommends <your-package-list-here>
38
-
39
- # [Optional] Uncomment this line to install additional gems.
40
- # RUN gem install <your-gem-names-here>
41
-
42
- # [Optional] Uncomment this line to install global node packages.
43
- # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
@@ -1,35 +0,0 @@
1
- // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2
- // https://github.com/microsoft/vscode-dev-containers/tree/v0.224.3/containers/ruby
3
- {
4
- "name": "Ruby",
5
- "build": {
6
- "dockerfile": "Dockerfile",
7
- "args": {
8
- // Update 'VARIANT' to pick a Ruby version: 3, 3.1, 3.0, 2, 2.7, 2.6
9
- // Append -bullseye or -buster to pin to an OS version.
10
- // Use -bullseye variants on local on arm64/Apple Silicon.
11
- "VARIANT": "3-bullseye",
12
- // Options
13
- "NODE_VERSION": "none"
14
- }
15
- },
16
-
17
- // Set *default* container specific settings.json values on container create.
18
- "settings": {},
19
-
20
- // Add the IDs of extensions you want installed when the container is created.
21
- "extensions": ["rebornix.Ruby"],
22
-
23
- // Use 'forwardPorts' to make a list of ports inside the container available locally.
24
- // "forwardPorts": [],
25
-
26
- // Use 'postCreateCommand' to run commands after the container is created.
27
- // "postCreateCommand": "ruby --version",
28
-
29
- // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
30
- "remoteUser": "vscode",
31
- "features": {
32
- "github-cli": "latest",
33
- "aws-cli": "latest"
34
- }
35
- }
data/Appraisals DELETED
@@ -1,23 +0,0 @@
1
- appraise 'rails_7_0' do
2
- group :test do
3
- gem 'activejob', '~> 7.0'
4
- end
5
- end
6
-
7
- appraise 'rails_7_1' do
8
- group :test do
9
- gem 'activejob', '~> 7.1'
10
- end
11
- end
12
-
13
- appraise 'rails_7_2' do
14
- group :test do
15
- gem 'activejob', '~> 7.2'
16
- end
17
- end
18
-
19
- appraise 'rails_8_0' do
20
- group :test do
21
- gem 'activejob', '~> 8.0'
22
- end
23
- end
data/gemfiles/.gitignore DELETED
@@ -1 +0,0 @@
1
- *.gemfile.lock
@@ -1,19 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source 'https://rubygems.org'
4
-
5
- group :test do
6
- gem 'activejob', '~> 7.0'
7
- gem 'httparty'
8
- gem 'multi_xml'
9
- gem 'simplecov'
10
- gem 'warning'
11
- end
12
-
13
- group :development do
14
- gem 'appraisal', git: 'https://github.com/thoughtbot/appraisal.git'
15
- gem 'pry-byebug'
16
- gem 'rubocop'
17
- end
18
-
19
- gemspec path: '../'
@@ -1,19 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source 'https://rubygems.org'
4
-
5
- group :test do
6
- gem 'activejob', '~> 7.1'
7
- gem 'httparty'
8
- gem 'multi_xml'
9
- gem 'simplecov'
10
- gem 'warning'
11
- end
12
-
13
- group :development do
14
- gem 'appraisal', git: 'https://github.com/thoughtbot/appraisal.git'
15
- gem 'pry-byebug'
16
- gem 'rubocop'
17
- end
18
-
19
- gemspec path: '../'
@@ -1,19 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source 'https://rubygems.org'
4
-
5
- group :test do
6
- gem 'activejob', '~> 7.2'
7
- gem 'httparty'
8
- gem 'multi_xml'
9
- gem 'simplecov'
10
- gem 'warning'
11
- end
12
-
13
- group :development do
14
- gem 'appraisal', git: 'https://github.com/thoughtbot/appraisal.git'
15
- gem 'pry-byebug'
16
- gem 'rubocop'
17
- end
18
-
19
- gemspec path: '../'
@@ -1,19 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source 'https://rubygems.org'
4
-
5
- group :test do
6
- gem 'activejob', '~> 8.0'
7
- gem 'httparty'
8
- gem 'multi_xml'
9
- gem 'simplecov'
10
- gem 'warning'
11
- end
12
-
13
- group :development do
14
- gem 'appraisal', git: 'https://github.com/thoughtbot/appraisal.git'
15
- gem 'pry-byebug'
16
- gem 'rubocop'
17
- end
18
-
19
- gemspec path: '../'