shoryuken 6.1.1 → 6.2.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 +4 -4
- data/.github/workflows/stale.yml +1 -1
- data/CHANGELOG.md +91 -0
- data/lib/shoryuken/environment_loader.rb +7 -0
- data/lib/shoryuken/middleware/server/active_record.rb +5 -1
- data/lib/shoryuken/options.rb +3 -1
- data/lib/shoryuken/processor.rb +13 -4
- data/lib/shoryuken/version.rb +1 -1
- data/lib/shoryuken.rb +4 -0
- data/spec/shoryuken/processor_spec.rb +38 -0
- data/spec/shoryuken/util_spec.rb +24 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f58520364e96d8d2d20cf583a062aba3565ca8cf742577498538fcfc76d5cc33
|
|
4
|
+
data.tar.gz: 6cbf5a7547b1c6fffd7155fe8963d4d55ea64aab831c5b6c972bbc5f6da6d244
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 442b206899748e7758cfad575224b4975244ea502102f2a2221a3f1a2a1b4c018de5f7c21a4a06fb65d12ca841c7106488b43617f271484aff3681d8db038d53
|
|
7
|
+
data.tar.gz: 8da6672d08fafb6f61202b285b61b0da5ee380b5a51e22fd7868c7362926d6e7998d84327889af9f97767565ace9afaead43d7d128b9c0807318c2239e4cbac7
|
data/.github/workflows/stale.yml
CHANGED
|
@@ -10,7 +10,7 @@ jobs:
|
|
|
10
10
|
issues: write
|
|
11
11
|
pull-requests: write
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/stale@
|
|
13
|
+
- uses: actions/stale@v9
|
|
14
14
|
with:
|
|
15
15
|
stale-issue-message: This issue is now marked as stale because it hasn't seen activity for a while. Add a comment or it will be closed soon.
|
|
16
16
|
stale-pr-message: This PR is now marked as stale because it hasn't seen activity for a while. Add a comment or it will be closed soon.
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## [v6.2.0] - 2024-02-04
|
|
2
|
+
|
|
3
|
+
- Enable hot-reload via adding ActiveSupport::Reloader delegate (#756)
|
|
4
|
+
- [#756](https://github.com/ruby-shoryuken/shoryuken/pull/756)
|
|
5
|
+
|
|
6
|
+
## [v6.1.2] - 2024-01-30
|
|
7
|
+
|
|
8
|
+
- Fix activerecord 7.1 deprecation warnings
|
|
9
|
+
- [#755](https://github.com/ruby-shoryuken/shoryuken/pull/755)
|
|
10
|
+
|
|
1
11
|
## [v6.1.1] - 2023-11-27
|
|
2
12
|
|
|
3
13
|
- Fix SQS API Changes causing nil returns instead of empty arrays
|
|
@@ -7,21 +17,27 @@
|
|
|
7
17
|
## [v6.1.0] - 2023-11-01
|
|
8
18
|
|
|
9
19
|
- Add GitHub Codespaces
|
|
20
|
+
|
|
10
21
|
- [#698](https://github.com/ruby-shoryuken/shoryuken/pull/698)
|
|
11
22
|
|
|
12
23
|
- Fix spec for ruby 3.0
|
|
24
|
+
|
|
13
25
|
- [#727](https://github.com/ruby-shoryuken/shoryuken/pull/727)
|
|
14
26
|
|
|
15
27
|
- Upgrade test matrix. Add Ruby 3.1, Ruby 3.2 and Rails 7
|
|
28
|
+
|
|
16
29
|
- [#739](https://github.com/ruby-shoryuken/shoryuken/pull/739)
|
|
17
30
|
|
|
18
31
|
- Fire stopped event after executor is stopped
|
|
32
|
+
|
|
19
33
|
- [#741](https://github.com/ruby-shoryuken/shoryuken/pull/741)
|
|
20
34
|
|
|
21
35
|
- Allow setup custom exception handlers for failing jobs
|
|
36
|
+
|
|
22
37
|
- [#742](https://github.com/ruby-shoryuken/shoryuken/pull/742)
|
|
23
38
|
|
|
24
39
|
- Configure dependabot to update GH Actions
|
|
40
|
+
|
|
25
41
|
- [#745](https://github.com/ruby-shoryuken/shoryuken/pull/745)
|
|
26
42
|
|
|
27
43
|
- Stop the dispatching of new messages when a SIGTERM signal has been received
|
|
@@ -36,6 +52,7 @@
|
|
|
36
52
|
## [v5.3.2] - 2022-01-19
|
|
37
53
|
|
|
38
54
|
- (Bugfix) Preserve queue weights when unpausing queues
|
|
55
|
+
|
|
39
56
|
- [#687](https://github.com/ruby-shoryuken/shoryuken/pull/687)
|
|
40
57
|
|
|
41
58
|
- Improve error message on startup when shoryuken has insufficient permissions to access a queue
|
|
@@ -49,6 +66,7 @@
|
|
|
49
66
|
## [v5.3.0] - 2021-10-31
|
|
50
67
|
|
|
51
68
|
- (Refactor) Use Forwardable within Message to avoid method boilerplate
|
|
69
|
+
|
|
52
70
|
- [#681](https://github.com/ruby-shoryuken/shoryuken/pull/681)
|
|
53
71
|
|
|
54
72
|
- Add basic health check API
|
|
@@ -67,13 +85,16 @@
|
|
|
67
85
|
## [v5.2.1] - 2021-04-06
|
|
68
86
|
|
|
69
87
|
- Reduce message batch sizes in `shoryuken sqs requeue` and `shoryuken sqs mv` commands
|
|
88
|
+
|
|
70
89
|
- [#666](https://github.com/ruby-shoryuken/shoryuken/pull/666)
|
|
71
90
|
|
|
72
91
|
- Fix bug in `shoryuken sqs requeue` and `shoryuken sqs mv` where those commands would exceed the SQS `SendMessageBatch` maximum payload size
|
|
92
|
+
|
|
73
93
|
- [#663](https://github.com/ruby-shoryuken/shoryuken/issues/663)
|
|
74
94
|
- [#664](https://github.com/ruby-shoryuken/shoryuken/pull/664)
|
|
75
95
|
|
|
76
96
|
- Remove test stub for `Concurrent.global_io_executor`
|
|
97
|
+
|
|
77
98
|
- [#662](https://github.com/ruby-shoryuken/shoryuken/pull/662)
|
|
78
99
|
|
|
79
100
|
- Run integration tests on CI
|
|
@@ -92,14 +113,17 @@
|
|
|
92
113
|
## [v5.1.0] - 2021-02-06
|
|
93
114
|
|
|
94
115
|
- Add support for specifying SQS SendMessage parameters with ActiveJob `.set`
|
|
116
|
+
|
|
95
117
|
- [#635](https://github.com/phstc/shoryuken/pull/635)
|
|
96
118
|
- [#648](https://github.com/phstc/shoryuken/pull/648)
|
|
97
119
|
- [#651](https://github.com/phstc/shoryuken/pull/651)
|
|
98
120
|
|
|
99
121
|
- Unpause FIFO queues on worker completion
|
|
122
|
+
|
|
100
123
|
- [#644](https://github.com/phstc/shoryuken/pull/644)
|
|
101
124
|
|
|
102
125
|
- Add multiple versions of Rails to test matrix
|
|
126
|
+
|
|
103
127
|
- [#647](https://github.com/phstc/shoryuken/pull/647)
|
|
104
128
|
|
|
105
129
|
- Migrate from Travis CI to Github Actions
|
|
@@ -141,9 +165,11 @@
|
|
|
141
165
|
## [v5.0.0] - 2019-06-18
|
|
142
166
|
|
|
143
167
|
- Fix bug where empty queues were not paused in batch processing mode
|
|
168
|
+
|
|
144
169
|
- [#569](https://github.com/phstc/shoryuken/pull/569)
|
|
145
170
|
|
|
146
171
|
- Preserve batch limit when receiving messages from a FIFO queue
|
|
172
|
+
|
|
147
173
|
- [#563](https://github.com/phstc/shoryuken/pull/563)
|
|
148
174
|
|
|
149
175
|
- Replace static options with instance options
|
|
@@ -157,9 +183,11 @@
|
|
|
157
183
|
## [v4.0.2] - 2018-11-26
|
|
158
184
|
|
|
159
185
|
- Fix the delegated methods to public warning
|
|
186
|
+
|
|
160
187
|
- [#536](https://github.com/phstc/shoryuken/pull/536)
|
|
161
188
|
|
|
162
189
|
- Specify exception class to `raise_error` matcher warning
|
|
190
|
+
|
|
163
191
|
- [#537](https://github.com/phstc/shoryuken/pull/537)
|
|
164
192
|
|
|
165
193
|
- Fix spelling of "visibility"
|
|
@@ -168,6 +196,7 @@
|
|
|
168
196
|
## [v4.0.1] - 2018-11-21
|
|
169
197
|
|
|
170
198
|
- Allow caching visibility_timeout lookups
|
|
199
|
+
|
|
171
200
|
- [#533](https://github.com/phstc/shoryuken/pull/533)
|
|
172
201
|
|
|
173
202
|
- Add queue name to inline executor
|
|
@@ -186,12 +215,15 @@
|
|
|
186
215
|
## [v3.3.0] - 2018-09-30
|
|
187
216
|
|
|
188
217
|
- Add support for TSTP
|
|
218
|
+
|
|
189
219
|
- [#492](https://github.com/phstc/shoryuken/pull/492)
|
|
190
220
|
|
|
191
221
|
- Support an empty list of queues as a CLI argument
|
|
222
|
+
|
|
192
223
|
- [#507](https://github.com/phstc/shoryuken/pull/507)
|
|
193
224
|
|
|
194
225
|
- Add batch support for inline workers
|
|
226
|
+
|
|
195
227
|
- [#514](https://github.com/phstc/shoryuken/pull/514)
|
|
196
228
|
|
|
197
229
|
- Make InlineExecutor to behave as the DefaultExecutor when calling perform_in
|
|
@@ -200,9 +232,11 @@
|
|
|
200
232
|
## [v3.2.3] - 2018-03-25
|
|
201
233
|
|
|
202
234
|
- Don't force eager load for Rails 5
|
|
235
|
+
|
|
203
236
|
- [#480](https://github.com/phstc/shoryuken/pull/480)
|
|
204
237
|
|
|
205
238
|
- Allow Batch Size to be Specified for Requeue
|
|
239
|
+
|
|
206
240
|
- [#478](https://github.com/phstc/shoryuken/pull/478)
|
|
207
241
|
|
|
208
242
|
- Support FIFO queues in `shoryuken sqs` commands
|
|
@@ -216,9 +250,11 @@
|
|
|
216
250
|
## [v3.2.1] - 2018-02-12
|
|
217
251
|
|
|
218
252
|
- Support FIFO queues in `shoryuken sqs` commands
|
|
253
|
+
|
|
219
254
|
- [#473](https://github.com/phstc/shoryuken/pull/473)
|
|
220
255
|
|
|
221
256
|
- Allow customizing the default executor launcher
|
|
257
|
+
|
|
222
258
|
- [#469](https://github.com/phstc/shoryuken/pull/469)
|
|
223
259
|
|
|
224
260
|
- Exclude job_id from message deduplication when ActiveJob
|
|
@@ -227,9 +263,11 @@
|
|
|
227
263
|
## [v3.2.0] - 2018-01-03
|
|
228
264
|
|
|
229
265
|
- Preserve parent worker class options
|
|
266
|
+
|
|
230
267
|
- [#451](https://github.com/phstc/shoryuken/pull/451)
|
|
231
268
|
|
|
232
269
|
- Add -t (shutdown timeout) option to CL
|
|
270
|
+
|
|
233
271
|
- [#449](https://github.com/phstc/shoryuken/pull/449)
|
|
234
272
|
|
|
235
273
|
- Support inline (Active Job like) for standard workers
|
|
@@ -253,6 +291,7 @@
|
|
|
253
291
|
## [v3.1.9] - 2017-08-24
|
|
254
292
|
|
|
255
293
|
- Add support for adding a middleware to the front of chain
|
|
294
|
+
|
|
256
295
|
- [#427](https://github.com/phstc/shoryuken/pull/427)
|
|
257
296
|
|
|
258
297
|
- Add support for dispatch fire event
|
|
@@ -266,9 +305,11 @@
|
|
|
266
305
|
## [v3.1.7] - 2017-07-31
|
|
267
306
|
|
|
268
307
|
- Allow polling strategy per group
|
|
308
|
+
|
|
269
309
|
- [#417](https://github.com/phstc/shoryuken/pull/417)
|
|
270
310
|
|
|
271
311
|
- Add support for creating FIFO queues
|
|
312
|
+
|
|
272
313
|
- [#419](https://github.com/phstc/shoryuken/pull/419)
|
|
273
314
|
|
|
274
315
|
- Allow receive message options per queue
|
|
@@ -282,6 +323,7 @@
|
|
|
282
323
|
## [v3.1.5] - 2017-07-23
|
|
283
324
|
|
|
284
325
|
- Fix memory leak
|
|
326
|
+
|
|
285
327
|
- [#414](https://github.com/phstc/shoryuken/pull/414)
|
|
286
328
|
|
|
287
329
|
- Fail fast on bad queue URLs
|
|
@@ -295,6 +337,7 @@
|
|
|
295
337
|
## [v3.1.3] - 2017-07-11
|
|
296
338
|
|
|
297
339
|
- Add queue prefixing support for groups
|
|
340
|
+
|
|
298
341
|
- [#405](https://github.com/phstc/shoryuken/pull/405)
|
|
299
342
|
|
|
300
343
|
- Remove dead code
|
|
@@ -308,6 +351,7 @@
|
|
|
308
351
|
## [v3.1.1] - 2017-07-05
|
|
309
352
|
|
|
310
353
|
- Reduce log verbosity introduced in 3.1.0
|
|
354
|
+
|
|
311
355
|
- [#397](https://github.com/phstc/shoryuken/pull/397)
|
|
312
356
|
|
|
313
357
|
- Try to prevent stack level too deep on Ubuntu
|
|
@@ -316,9 +360,11 @@
|
|
|
316
360
|
## [v3.1.0] - 2017-07-02
|
|
317
361
|
|
|
318
362
|
- Add shoryuken sqs delete command
|
|
363
|
+
|
|
319
364
|
- [#395](https://github.com/phstc/shoryuken/pull/395)
|
|
320
365
|
|
|
321
366
|
- Add processing groups support; Concurrency per queue support
|
|
367
|
+
|
|
322
368
|
- [#389](https://github.com/phstc/shoryuken/pull/389)
|
|
323
369
|
|
|
324
370
|
- Terminate Shoryuken if the fetcher crashes
|
|
@@ -332,6 +378,7 @@
|
|
|
332
378
|
## [v3.0.10] - 2017-06-24
|
|
333
379
|
|
|
334
380
|
- Allow aws sdk v3
|
|
381
|
+
|
|
335
382
|
- [#381](https://github.com/phstc/shoryuken/pull/381)
|
|
336
383
|
|
|
337
384
|
- Allow configuring Rails via the config file
|
|
@@ -345,9 +392,11 @@
|
|
|
345
392
|
## [v3.0.8] - 2017-06-02
|
|
346
393
|
|
|
347
394
|
- Fix miss handling empty batch fetches
|
|
395
|
+
|
|
348
396
|
- [#376](https://github.com/phstc/shoryuken/pull/376)
|
|
349
397
|
|
|
350
398
|
- Various minor styling changes :lipstick:
|
|
399
|
+
|
|
351
400
|
- [#373](https://github.com/phstc/shoryuken/pull/373)
|
|
352
401
|
|
|
353
402
|
- Logout when batch delete returns any failure
|
|
@@ -356,9 +405,11 @@
|
|
|
356
405
|
## [v3.0.7] - 2017-05-18
|
|
357
406
|
|
|
358
407
|
- Trigger events for dispatch
|
|
408
|
+
|
|
359
409
|
- [#362](https://github.com/phstc/shoryuken/pull/362)
|
|
360
410
|
|
|
361
411
|
- Log (warn) exponential backoff tries
|
|
412
|
+
|
|
362
413
|
- [#365](https://github.com/phstc/shoryuken/pull/365)
|
|
363
414
|
|
|
364
415
|
- Fix displaying of long queue names in `shoryuken sqs ls`
|
|
@@ -372,12 +423,15 @@
|
|
|
372
423
|
## [v3.0.5] - 2017-04-09
|
|
373
424
|
|
|
374
425
|
- Pause endless dispatcher to avoid CPU overload
|
|
426
|
+
|
|
375
427
|
- [#354](https://github.com/phstc/shoryuken/pull/354)
|
|
376
428
|
|
|
377
429
|
- Auto log processor errors
|
|
430
|
+
|
|
378
431
|
- [#355](https://github.com/phstc/shoryuken/pull/355)
|
|
379
432
|
|
|
380
433
|
- Add a delay as a CLI param
|
|
434
|
+
|
|
381
435
|
- [#350](https://github.com/phstc/shoryuken/pull/350)
|
|
382
436
|
|
|
383
437
|
- Add `sqs purge` command. See https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_PurgeQueue.html
|
|
@@ -386,6 +440,7 @@
|
|
|
386
440
|
## [v3.0.4] - 2017-03-24
|
|
387
441
|
|
|
388
442
|
- Add `sqs purge` command. See https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_PurgeQueue.html
|
|
443
|
+
|
|
389
444
|
- [#344](https://github.com/phstc/shoryuken/pull/344)
|
|
390
445
|
|
|
391
446
|
- Fix "Thread exhaustion" error. This issue was most noticed when using long polling. @waynerobinson :beers: for pairing up on this.
|
|
@@ -409,18 +464,23 @@
|
|
|
409
464
|
## [v3.0.0] - 2017-03-12
|
|
410
465
|
|
|
411
466
|
- Replace Celluloid with Concurrent Ruby
|
|
467
|
+
|
|
412
468
|
- [#291](https://github.com/phstc/shoryuken/pull/291)
|
|
413
469
|
|
|
414
470
|
- Remove AWS configuration from Shoryuken. Now AWS should be configured from outside. Check [this](https://github.com/phstc/shoryuken/wiki/Configure-the-AWS-Client) for more details
|
|
471
|
+
|
|
415
472
|
- [#317](https://github.com/phstc/shoryuken/pull/317)
|
|
416
473
|
|
|
417
474
|
- Remove deprecation warnings
|
|
475
|
+
|
|
418
476
|
- [#326](https://github.com/phstc/shoryuken/pull/326)
|
|
419
477
|
|
|
420
478
|
- Allow dynamic adding queues
|
|
479
|
+
|
|
421
480
|
- [#322](https://github.com/phstc/shoryuken/pull/322)
|
|
422
481
|
|
|
423
482
|
- Support retry_intervals passed in as a lambda. Auto coerce intervals into integer
|
|
483
|
+
|
|
424
484
|
- [#329](https://github.com/phstc/shoryuken/pull/329)
|
|
425
485
|
|
|
426
486
|
- Add SQS commands `shoryuken help sqs`, such as `ls`, `mv`, `dump` and `requeue`
|
|
@@ -429,9 +489,11 @@
|
|
|
429
489
|
## [v2.1.3] - 2017-01-27
|
|
430
490
|
|
|
431
491
|
- Show a warn message when batch isn't supported
|
|
492
|
+
|
|
432
493
|
- [#302](https://github.com/phstc/shoryuken/pull/302)
|
|
433
494
|
|
|
434
495
|
- Require Celluloid ~> 17
|
|
496
|
+
|
|
435
497
|
- [#305](https://github.com/phstc/shoryuken/pull/305)
|
|
436
498
|
|
|
437
499
|
- Fix excessive logging when 0 messages found
|
|
@@ -440,18 +502,23 @@
|
|
|
440
502
|
## [v2.1.2] - 2016-12-22
|
|
441
503
|
|
|
442
504
|
- Fix loading `logfile` from shoryuken.yml
|
|
505
|
+
|
|
443
506
|
- [#296](https://github.com/phstc/shoryuken/pull/296)
|
|
444
507
|
|
|
445
508
|
- Add support for Strict priority polling (pending documentation)
|
|
509
|
+
|
|
446
510
|
- [#288](https://github.com/phstc/shoryuken/pull/288)
|
|
447
511
|
|
|
448
512
|
- Add `test_workers` for end-to-end testing supporting
|
|
513
|
+
|
|
449
514
|
- [#286](https://github.com/phstc/shoryuken/pull/286)
|
|
450
515
|
|
|
451
516
|
- Update README documenting `configure_client` and `configure_server`
|
|
517
|
+
|
|
452
518
|
- [#283](https://github.com/phstc/shoryuken/pull/283)
|
|
453
519
|
|
|
454
520
|
- Fix memory leak caused by async tracking busy threads
|
|
521
|
+
|
|
455
522
|
- [#289](https://github.com/phstc/shoryuken/pull/289)
|
|
456
523
|
|
|
457
524
|
- Refactor fetcher, polling strategy and manager
|
|
@@ -465,24 +532,31 @@
|
|
|
465
532
|
## [v2.1.0] - 2016-12-03
|
|
466
533
|
|
|
467
534
|
- Fix celluloid "running in BACKPORTED mode" warning
|
|
535
|
+
|
|
468
536
|
- [#260](https://github.com/phstc/shoryuken/pull/260)
|
|
469
537
|
|
|
470
538
|
- Allow setting the aws configuration in 'Shoryuken.configure_server'
|
|
539
|
+
|
|
471
540
|
- [#252](https://github.com/phstc/shoryuken/pull/252)
|
|
472
541
|
|
|
473
542
|
- Allow requiring a file or dir a through `-r`
|
|
543
|
+
|
|
474
544
|
- [#248](https://github.com/phstc/shoryuken/pull/248)
|
|
475
545
|
|
|
476
546
|
- Reduce info log verbosity
|
|
547
|
+
|
|
477
548
|
- [#243](https://github.com/phstc/shoryuken/pull/243)
|
|
478
549
|
|
|
479
550
|
- Fix auto extender when using ActiveJob
|
|
551
|
+
|
|
480
552
|
- [#3213](https://github.com/phstc/shoryuken/pull/213)
|
|
481
553
|
|
|
482
554
|
- Add FIFO queue support
|
|
555
|
+
|
|
483
556
|
- [#272](https://github.com/phstc/shoryuken/issues/272)
|
|
484
557
|
|
|
485
558
|
- Deprecates initialize_aws
|
|
559
|
+
|
|
486
560
|
- [#269](https://github.com/phstc/shoryuken/pull/269)
|
|
487
561
|
|
|
488
562
|
- [Other miscellaneous updates](https://github.com/phstc/shoryuken/compare/v2.0.11...v2.1.0)
|
|
@@ -510,22 +584,28 @@
|
|
|
510
584
|
## [v2.0.7] - 2016-06-06
|
|
511
585
|
|
|
512
586
|
- Daemonize before loading environment
|
|
587
|
+
|
|
513
588
|
- [#219](https://github.com/phstc/shoryuken/pull/219)
|
|
514
589
|
|
|
515
590
|
- Fix initialization when using rails
|
|
591
|
+
|
|
516
592
|
- [#197](https://github.com/phstc/shoryuken/pull/197)
|
|
517
593
|
|
|
518
594
|
- Improve message fetching
|
|
595
|
+
|
|
519
596
|
- [#214](https://github.com/phstc/shoryuken/pull/214)
|
|
520
597
|
- [#f4640d9](https://github.com/phstc/shoryuken/commit/f4640d9)
|
|
521
598
|
|
|
522
599
|
- Fix hard shutdown if there are some busy workers when signal received
|
|
600
|
+
|
|
523
601
|
- [#215](https://github.com/phstc/shoryuken/pull/215)
|
|
524
602
|
|
|
525
603
|
- Fix `rake console` task
|
|
604
|
+
|
|
526
605
|
- [#208](https://github.com/phstc/shoryuken/pull/208)
|
|
527
606
|
|
|
528
607
|
- Isolate `MessageVisibilityExtender` as new middleware
|
|
608
|
+
|
|
529
609
|
- [#199](https://github.com/phstc/shoryuken/pull/190)
|
|
530
610
|
|
|
531
611
|
- Fail on non-existent queues
|
|
@@ -539,6 +619,7 @@
|
|
|
539
619
|
## [v2.0.5] - 2016-04-17
|
|
540
620
|
|
|
541
621
|
- Fix log initialization when using `Shoryuken::EnvironmentLoader#load`
|
|
622
|
+
|
|
542
623
|
- [#191](https://github.com/phstc/shoryuken/pull/191)
|
|
543
624
|
|
|
544
625
|
- Fix `enqueue_at` in the ActiveJob Adapter
|
|
@@ -547,12 +628,15 @@
|
|
|
547
628
|
## [v2.0.4] - 2016-02-04
|
|
548
629
|
|
|
549
630
|
- Add Rails 3 support
|
|
631
|
+
|
|
550
632
|
- [#175](https://github.com/phstc/shoryuken/pull/175)
|
|
551
633
|
|
|
552
634
|
- Allow symbol as a queue name in shoryuken_options
|
|
635
|
+
|
|
553
636
|
- [#177](https://github.com/phstc/shoryuken/pull/177)
|
|
554
637
|
|
|
555
638
|
- Make sure bundler is always updated on Travis CI
|
|
639
|
+
|
|
556
640
|
- [#176](https://github.com/phstc/shoryuken/pull/176)
|
|
557
641
|
|
|
558
642
|
- Add Rails 5 compatibility
|
|
@@ -561,6 +645,7 @@
|
|
|
561
645
|
## [v2.0.3] - 2015-12-30
|
|
562
646
|
|
|
563
647
|
- Allow multiple queues per worker
|
|
648
|
+
|
|
564
649
|
- [#164](https://github.com/phstc/shoryuken/pull/164)
|
|
565
650
|
|
|
566
651
|
- Fix typo
|
|
@@ -569,15 +654,19 @@
|
|
|
569
654
|
## [v2.0.2] - 2015-10-27
|
|
570
655
|
|
|
571
656
|
- Fix warnings that are triggered in some cases with the raise_error matcher
|
|
657
|
+
|
|
572
658
|
- [#144](https://github.com/phstc/shoryuken/pull/144)
|
|
573
659
|
|
|
574
660
|
- Add lifecycle event registration support
|
|
661
|
+
|
|
575
662
|
- [#141](https://github.com/phstc/shoryuken/pull/141)
|
|
576
663
|
|
|
577
664
|
- Allow passing array of messages to send_messages
|
|
665
|
+
|
|
578
666
|
- [#140](https://github.com/phstc/shoryuken/pull/140)
|
|
579
667
|
|
|
580
668
|
- Fix Active Job queue prefixing in Rails apps
|
|
669
|
+
|
|
581
670
|
- [#139](https://github.com/phstc/shoryuken/pull/139)
|
|
582
671
|
|
|
583
672
|
- Enable override the default queue with a :queue option
|
|
@@ -591,9 +680,11 @@
|
|
|
591
680
|
## [v2.0.0] - 2015-09-22
|
|
592
681
|
|
|
593
682
|
- Allow configuration of SQS/SNS endpoints via environment variables
|
|
683
|
+
|
|
594
684
|
- [#130](https://github.com/phstc/shoryuken/pull/130)
|
|
595
685
|
|
|
596
686
|
- Expose queue_name in the message object
|
|
687
|
+
|
|
597
688
|
- [#127](https://github.com/phstc/shoryuken/pull/127)
|
|
598
689
|
|
|
599
690
|
- README updates
|
|
@@ -70,6 +70,13 @@ module Shoryuken
|
|
|
70
70
|
::Rails.application.config.eager_load = true
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
|
+
::Rails::Application.initializer 'shoryuken.set_reloader_hook' do |app|
|
|
74
|
+
Shoryuken.reloader = proc do |&block|
|
|
75
|
+
app.reloader.wrap do
|
|
76
|
+
block.call
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
73
80
|
if Shoryuken.active_job?
|
|
74
81
|
require 'shoryuken/extensions/active_job_extensions'
|
|
75
82
|
require 'shoryuken/extensions/active_job_adapter'
|
|
@@ -5,7 +5,11 @@ module Shoryuken
|
|
|
5
5
|
def call(*_args)
|
|
6
6
|
yield
|
|
7
7
|
ensure
|
|
8
|
-
::ActiveRecord::
|
|
8
|
+
if ::ActiveRecord.version >= Gem::Version.new('7.1')
|
|
9
|
+
::ActiveRecord::Base.connection_handler.clear_active_connections!(:all)
|
|
10
|
+
else
|
|
11
|
+
::ActiveRecord::Base.clear_active_connections!
|
|
12
|
+
end
|
|
9
13
|
end
|
|
10
14
|
end
|
|
11
15
|
end
|
data/lib/shoryuken/options.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Shoryuken
|
|
|
17
17
|
}.freeze
|
|
18
18
|
|
|
19
19
|
attr_accessor :active_job_queue_name_prefixing, :cache_visibility_timeout, :groups,
|
|
20
|
-
:launcher_executor,
|
|
20
|
+
:launcher_executor, :reloader, :enable_reloading,
|
|
21
21
|
:start_callback, :stop_callback, :worker_executor, :worker_registry, :exception_handlers
|
|
22
22
|
attr_writer :default_worker_options, :sqs_client
|
|
23
23
|
attr_reader :sqs_client_receive_message_opts
|
|
@@ -29,6 +29,8 @@ module Shoryuken
|
|
|
29
29
|
self.active_job_queue_name_prefixing = false
|
|
30
30
|
self.worker_executor = Worker::DefaultExecutor
|
|
31
31
|
self.cache_visibility_timeout = false
|
|
32
|
+
self.reloader = proc { |&block| block.call }
|
|
33
|
+
self.enable_reloading ||= false
|
|
32
34
|
# this is needed for keeping backward compatibility
|
|
33
35
|
@sqs_client_receive_message_opts ||= {}
|
|
34
36
|
end
|
data/lib/shoryuken/processor.rb
CHANGED
|
@@ -14,12 +14,21 @@ module Shoryuken
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def process
|
|
17
|
-
|
|
17
|
+
worker_perform = proc do
|
|
18
|
+
return logger.error { "No worker found for #{queue}" } unless worker
|
|
19
|
+
Shoryuken::Logging.with_context("#{worker_name(worker.class, sqs_msg, body)}/#{queue}/#{sqs_msg.message_id}") do
|
|
20
|
+
worker.class.server_middleware.invoke(worker, queue, sqs_msg, body) do
|
|
21
|
+
worker.perform(sqs_msg, body)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
18
25
|
|
|
19
|
-
Shoryuken
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
if Shoryuken.enable_reloading
|
|
27
|
+
Shoryuken.reloader.call do
|
|
28
|
+
worker_perform.call
|
|
22
29
|
end
|
|
30
|
+
else
|
|
31
|
+
worker_perform.call
|
|
23
32
|
end
|
|
24
33
|
rescue Exception => ex
|
|
25
34
|
Array(Shoryuken.exception_handlers).each { |handler| handler.call(ex, queue, sqs_msg) }
|
data/lib/shoryuken/version.rb
CHANGED
data/lib/shoryuken.rb
CHANGED
|
@@ -159,5 +159,43 @@ RSpec.describe Shoryuken::Processor do
|
|
|
159
159
|
subject.process
|
|
160
160
|
end
|
|
161
161
|
end
|
|
162
|
+
|
|
163
|
+
context 'when specifying a reloader' do
|
|
164
|
+
before do
|
|
165
|
+
Shoryuken.reloader = proc do |_|
|
|
166
|
+
TestWorker.new.called
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
after do
|
|
171
|
+
Shoryuken.reloader = proc { |&block| block.call }
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
context 'when reloader is enabled' do
|
|
175
|
+
before do
|
|
176
|
+
Shoryuken.enable_reloading = true
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
it 'wraps execution in reloader' do
|
|
180
|
+
expect_any_instance_of(TestWorker).to receive(:called)
|
|
181
|
+
expect_any_instance_of(TestWorker).to_not receive(:perform)
|
|
182
|
+
|
|
183
|
+
subject.process
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
after do
|
|
187
|
+
Shoryuken.enable_reloading = false
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
context 'when reloader is disabled' do
|
|
192
|
+
it 'does not wrap execution in reloader' do
|
|
193
|
+
expect_any_instance_of(TestWorker).to_not receive(:called)
|
|
194
|
+
expect_any_instance_of(TestWorker).to receive(:perform).with(sqs_msg, sqs_msg.body)
|
|
195
|
+
|
|
196
|
+
subject.process
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
162
200
|
end
|
|
163
201
|
end
|
data/spec/shoryuken/util_spec.rb
CHANGED
|
@@ -17,14 +17,34 @@ describe 'Shoryuken::Util' do
|
|
|
17
17
|
|
|
18
18
|
describe '#worker_name' do
|
|
19
19
|
let(:sqs_msg) do
|
|
20
|
-
double Shoryuken::Message, message_id: 'fc754df7-9cc2-4c41-96ca-5996a44b771e', message_attributes:
|
|
20
|
+
double Shoryuken::Message, message_id: 'fc754df7-9cc2-4c41-96ca-5996a44b771e', message_attributes: message_attributes
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
context 'when has integration with ActiveJob' do
|
|
24
|
+
before do
|
|
25
|
+
allow(Shoryuken).to receive(:active_job?).and_return(true)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
let(:message_attributes) do
|
|
29
|
+
{ 'shoryuken_class' => { string_value: ActiveJob::QueueAdapters::ShoryukenAdapter::JobWrapper.to_s } }
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
let(:body) do
|
|
33
|
+
{ 'job_class' => 'TestJob' }
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'returns ActiveJob worker name' do
|
|
37
|
+
expect(subject.worker_name(TestWorker, sqs_msg, body)).to eq 'ActiveJob/TestJob'
|
|
38
|
+
end
|
|
25
39
|
end
|
|
26
40
|
|
|
27
|
-
|
|
41
|
+
context 'when has not integration with ActiveJob' do
|
|
42
|
+
let(:message_attributes) { {} }
|
|
43
|
+
|
|
44
|
+
it 'returns Shoryuken worker name' do
|
|
45
|
+
expect(subject.worker_name(TestWorker, sqs_msg)).to eq 'TestWorker'
|
|
46
|
+
end
|
|
47
|
+
end
|
|
28
48
|
end
|
|
29
49
|
|
|
30
50
|
describe '#fire_event' do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shoryuken
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.
|
|
4
|
+
version: 6.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pablo Cantero
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-02-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dotenv
|