shoryuken 6.1.1 → 6.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/stale.yml +1 -1
- data/CHANGELOG.md +96 -0
- data/lib/shoryuken/environment_loader.rb +7 -0
- data/lib/shoryuken/middleware/server/active_record.rb +5 -1
- data/lib/shoryuken/options.rb +9 -3
- 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: 6168df5d49a143c56908e559afcaddc28f7416176881429069cd12680db867c6
|
4
|
+
data.tar.gz: 1c3a73c4e269457b29962f0a0ac9ba56093ab58cbfab7b00c9aa79c0eb7cb186
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ba49924964a3c98336a3b68e008d831549247574d2f180c72e600bef1dfbcdfa142a863d5e49b100f226d6d5aaf3e0b00fc972968e0ec3502121f10661f9c10
|
7
|
+
data.tar.gz: 9cc7f3b45550ff308213ceb72f2098a0bd1ae868c4b1401fbe3fe1a0cb8b43467c347ac2b396e0bcb2148f1d9927a46da43951a8550d027c0e9ba28db0739840
|
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,18 @@
|
|
1
|
+
## [v6.2.1] - 2024-02-09
|
2
|
+
|
3
|
+
- Bugfix: Not able to use extended polling strategy (#759)
|
4
|
+
- [#759](https://github.com/ruby-shoryuken/shoryuken/pull/759)
|
5
|
+
|
6
|
+
## [v6.2.0] - 2024-02-04
|
7
|
+
|
8
|
+
- Enable hot-reload via adding ActiveSupport::Reloader delegate (#756)
|
9
|
+
- [#756](https://github.com/ruby-shoryuken/shoryuken/pull/756)
|
10
|
+
|
11
|
+
## [v6.1.2] - 2024-01-30
|
12
|
+
|
13
|
+
- Fix activerecord 7.1 deprecation warnings
|
14
|
+
- [#755](https://github.com/ruby-shoryuken/shoryuken/pull/755)
|
15
|
+
|
1
16
|
## [v6.1.1] - 2023-11-27
|
2
17
|
|
3
18
|
- Fix SQS API Changes causing nil returns instead of empty arrays
|
@@ -7,21 +22,27 @@
|
|
7
22
|
## [v6.1.0] - 2023-11-01
|
8
23
|
|
9
24
|
- Add GitHub Codespaces
|
25
|
+
|
10
26
|
- [#698](https://github.com/ruby-shoryuken/shoryuken/pull/698)
|
11
27
|
|
12
28
|
- Fix spec for ruby 3.0
|
29
|
+
|
13
30
|
- [#727](https://github.com/ruby-shoryuken/shoryuken/pull/727)
|
14
31
|
|
15
32
|
- Upgrade test matrix. Add Ruby 3.1, Ruby 3.2 and Rails 7
|
33
|
+
|
16
34
|
- [#739](https://github.com/ruby-shoryuken/shoryuken/pull/739)
|
17
35
|
|
18
36
|
- Fire stopped event after executor is stopped
|
37
|
+
|
19
38
|
- [#741](https://github.com/ruby-shoryuken/shoryuken/pull/741)
|
20
39
|
|
21
40
|
- Allow setup custom exception handlers for failing jobs
|
41
|
+
|
22
42
|
- [#742](https://github.com/ruby-shoryuken/shoryuken/pull/742)
|
23
43
|
|
24
44
|
- Configure dependabot to update GH Actions
|
45
|
+
|
25
46
|
- [#745](https://github.com/ruby-shoryuken/shoryuken/pull/745)
|
26
47
|
|
27
48
|
- Stop the dispatching of new messages when a SIGTERM signal has been received
|
@@ -36,6 +57,7 @@
|
|
36
57
|
## [v5.3.2] - 2022-01-19
|
37
58
|
|
38
59
|
- (Bugfix) Preserve queue weights when unpausing queues
|
60
|
+
|
39
61
|
- [#687](https://github.com/ruby-shoryuken/shoryuken/pull/687)
|
40
62
|
|
41
63
|
- Improve error message on startup when shoryuken has insufficient permissions to access a queue
|
@@ -49,6 +71,7 @@
|
|
49
71
|
## [v5.3.0] - 2021-10-31
|
50
72
|
|
51
73
|
- (Refactor) Use Forwardable within Message to avoid method boilerplate
|
74
|
+
|
52
75
|
- [#681](https://github.com/ruby-shoryuken/shoryuken/pull/681)
|
53
76
|
|
54
77
|
- Add basic health check API
|
@@ -67,13 +90,16 @@
|
|
67
90
|
## [v5.2.1] - 2021-04-06
|
68
91
|
|
69
92
|
- Reduce message batch sizes in `shoryuken sqs requeue` and `shoryuken sqs mv` commands
|
93
|
+
|
70
94
|
- [#666](https://github.com/ruby-shoryuken/shoryuken/pull/666)
|
71
95
|
|
72
96
|
- Fix bug in `shoryuken sqs requeue` and `shoryuken sqs mv` where those commands would exceed the SQS `SendMessageBatch` maximum payload size
|
97
|
+
|
73
98
|
- [#663](https://github.com/ruby-shoryuken/shoryuken/issues/663)
|
74
99
|
- [#664](https://github.com/ruby-shoryuken/shoryuken/pull/664)
|
75
100
|
|
76
101
|
- Remove test stub for `Concurrent.global_io_executor`
|
102
|
+
|
77
103
|
- [#662](https://github.com/ruby-shoryuken/shoryuken/pull/662)
|
78
104
|
|
79
105
|
- Run integration tests on CI
|
@@ -92,14 +118,17 @@
|
|
92
118
|
## [v5.1.0] - 2021-02-06
|
93
119
|
|
94
120
|
- Add support for specifying SQS SendMessage parameters with ActiveJob `.set`
|
121
|
+
|
95
122
|
- [#635](https://github.com/phstc/shoryuken/pull/635)
|
96
123
|
- [#648](https://github.com/phstc/shoryuken/pull/648)
|
97
124
|
- [#651](https://github.com/phstc/shoryuken/pull/651)
|
98
125
|
|
99
126
|
- Unpause FIFO queues on worker completion
|
127
|
+
|
100
128
|
- [#644](https://github.com/phstc/shoryuken/pull/644)
|
101
129
|
|
102
130
|
- Add multiple versions of Rails to test matrix
|
131
|
+
|
103
132
|
- [#647](https://github.com/phstc/shoryuken/pull/647)
|
104
133
|
|
105
134
|
- Migrate from Travis CI to Github Actions
|
@@ -141,9 +170,11 @@
|
|
141
170
|
## [v5.0.0] - 2019-06-18
|
142
171
|
|
143
172
|
- Fix bug where empty queues were not paused in batch processing mode
|
173
|
+
|
144
174
|
- [#569](https://github.com/phstc/shoryuken/pull/569)
|
145
175
|
|
146
176
|
- Preserve batch limit when receiving messages from a FIFO queue
|
177
|
+
|
147
178
|
- [#563](https://github.com/phstc/shoryuken/pull/563)
|
148
179
|
|
149
180
|
- Replace static options with instance options
|
@@ -157,9 +188,11 @@
|
|
157
188
|
## [v4.0.2] - 2018-11-26
|
158
189
|
|
159
190
|
- Fix the delegated methods to public warning
|
191
|
+
|
160
192
|
- [#536](https://github.com/phstc/shoryuken/pull/536)
|
161
193
|
|
162
194
|
- Specify exception class to `raise_error` matcher warning
|
195
|
+
|
163
196
|
- [#537](https://github.com/phstc/shoryuken/pull/537)
|
164
197
|
|
165
198
|
- Fix spelling of "visibility"
|
@@ -168,6 +201,7 @@
|
|
168
201
|
## [v4.0.1] - 2018-11-21
|
169
202
|
|
170
203
|
- Allow caching visibility_timeout lookups
|
204
|
+
|
171
205
|
- [#533](https://github.com/phstc/shoryuken/pull/533)
|
172
206
|
|
173
207
|
- Add queue name to inline executor
|
@@ -186,12 +220,15 @@
|
|
186
220
|
## [v3.3.0] - 2018-09-30
|
187
221
|
|
188
222
|
- Add support for TSTP
|
223
|
+
|
189
224
|
- [#492](https://github.com/phstc/shoryuken/pull/492)
|
190
225
|
|
191
226
|
- Support an empty list of queues as a CLI argument
|
227
|
+
|
192
228
|
- [#507](https://github.com/phstc/shoryuken/pull/507)
|
193
229
|
|
194
230
|
- Add batch support for inline workers
|
231
|
+
|
195
232
|
- [#514](https://github.com/phstc/shoryuken/pull/514)
|
196
233
|
|
197
234
|
- Make InlineExecutor to behave as the DefaultExecutor when calling perform_in
|
@@ -200,9 +237,11 @@
|
|
200
237
|
## [v3.2.3] - 2018-03-25
|
201
238
|
|
202
239
|
- Don't force eager load for Rails 5
|
240
|
+
|
203
241
|
- [#480](https://github.com/phstc/shoryuken/pull/480)
|
204
242
|
|
205
243
|
- Allow Batch Size to be Specified for Requeue
|
244
|
+
|
206
245
|
- [#478](https://github.com/phstc/shoryuken/pull/478)
|
207
246
|
|
208
247
|
- Support FIFO queues in `shoryuken sqs` commands
|
@@ -216,9 +255,11 @@
|
|
216
255
|
## [v3.2.1] - 2018-02-12
|
217
256
|
|
218
257
|
- Support FIFO queues in `shoryuken sqs` commands
|
258
|
+
|
219
259
|
- [#473](https://github.com/phstc/shoryuken/pull/473)
|
220
260
|
|
221
261
|
- Allow customizing the default executor launcher
|
262
|
+
|
222
263
|
- [#469](https://github.com/phstc/shoryuken/pull/469)
|
223
264
|
|
224
265
|
- Exclude job_id from message deduplication when ActiveJob
|
@@ -227,9 +268,11 @@
|
|
227
268
|
## [v3.2.0] - 2018-01-03
|
228
269
|
|
229
270
|
- Preserve parent worker class options
|
271
|
+
|
230
272
|
- [#451](https://github.com/phstc/shoryuken/pull/451)
|
231
273
|
|
232
274
|
- Add -t (shutdown timeout) option to CL
|
275
|
+
|
233
276
|
- [#449](https://github.com/phstc/shoryuken/pull/449)
|
234
277
|
|
235
278
|
- Support inline (Active Job like) for standard workers
|
@@ -253,6 +296,7 @@
|
|
253
296
|
## [v3.1.9] - 2017-08-24
|
254
297
|
|
255
298
|
- Add support for adding a middleware to the front of chain
|
299
|
+
|
256
300
|
- [#427](https://github.com/phstc/shoryuken/pull/427)
|
257
301
|
|
258
302
|
- Add support for dispatch fire event
|
@@ -266,9 +310,11 @@
|
|
266
310
|
## [v3.1.7] - 2017-07-31
|
267
311
|
|
268
312
|
- Allow polling strategy per group
|
313
|
+
|
269
314
|
- [#417](https://github.com/phstc/shoryuken/pull/417)
|
270
315
|
|
271
316
|
- Add support for creating FIFO queues
|
317
|
+
|
272
318
|
- [#419](https://github.com/phstc/shoryuken/pull/419)
|
273
319
|
|
274
320
|
- Allow receive message options per queue
|
@@ -282,6 +328,7 @@
|
|
282
328
|
## [v3.1.5] - 2017-07-23
|
283
329
|
|
284
330
|
- Fix memory leak
|
331
|
+
|
285
332
|
- [#414](https://github.com/phstc/shoryuken/pull/414)
|
286
333
|
|
287
334
|
- Fail fast on bad queue URLs
|
@@ -295,6 +342,7 @@
|
|
295
342
|
## [v3.1.3] - 2017-07-11
|
296
343
|
|
297
344
|
- Add queue prefixing support for groups
|
345
|
+
|
298
346
|
- [#405](https://github.com/phstc/shoryuken/pull/405)
|
299
347
|
|
300
348
|
- Remove dead code
|
@@ -308,6 +356,7 @@
|
|
308
356
|
## [v3.1.1] - 2017-07-05
|
309
357
|
|
310
358
|
- Reduce log verbosity introduced in 3.1.0
|
359
|
+
|
311
360
|
- [#397](https://github.com/phstc/shoryuken/pull/397)
|
312
361
|
|
313
362
|
- Try to prevent stack level too deep on Ubuntu
|
@@ -316,9 +365,11 @@
|
|
316
365
|
## [v3.1.0] - 2017-07-02
|
317
366
|
|
318
367
|
- Add shoryuken sqs delete command
|
368
|
+
|
319
369
|
- [#395](https://github.com/phstc/shoryuken/pull/395)
|
320
370
|
|
321
371
|
- Add processing groups support; Concurrency per queue support
|
372
|
+
|
322
373
|
- [#389](https://github.com/phstc/shoryuken/pull/389)
|
323
374
|
|
324
375
|
- Terminate Shoryuken if the fetcher crashes
|
@@ -332,6 +383,7 @@
|
|
332
383
|
## [v3.0.10] - 2017-06-24
|
333
384
|
|
334
385
|
- Allow aws sdk v3
|
386
|
+
|
335
387
|
- [#381](https://github.com/phstc/shoryuken/pull/381)
|
336
388
|
|
337
389
|
- Allow configuring Rails via the config file
|
@@ -345,9 +397,11 @@
|
|
345
397
|
## [v3.0.8] - 2017-06-02
|
346
398
|
|
347
399
|
- Fix miss handling empty batch fetches
|
400
|
+
|
348
401
|
- [#376](https://github.com/phstc/shoryuken/pull/376)
|
349
402
|
|
350
403
|
- Various minor styling changes :lipstick:
|
404
|
+
|
351
405
|
- [#373](https://github.com/phstc/shoryuken/pull/373)
|
352
406
|
|
353
407
|
- Logout when batch delete returns any failure
|
@@ -356,9 +410,11 @@
|
|
356
410
|
## [v3.0.7] - 2017-05-18
|
357
411
|
|
358
412
|
- Trigger events for dispatch
|
413
|
+
|
359
414
|
- [#362](https://github.com/phstc/shoryuken/pull/362)
|
360
415
|
|
361
416
|
- Log (warn) exponential backoff tries
|
417
|
+
|
362
418
|
- [#365](https://github.com/phstc/shoryuken/pull/365)
|
363
419
|
|
364
420
|
- Fix displaying of long queue names in `shoryuken sqs ls`
|
@@ -372,12 +428,15 @@
|
|
372
428
|
## [v3.0.5] - 2017-04-09
|
373
429
|
|
374
430
|
- Pause endless dispatcher to avoid CPU overload
|
431
|
+
|
375
432
|
- [#354](https://github.com/phstc/shoryuken/pull/354)
|
376
433
|
|
377
434
|
- Auto log processor errors
|
435
|
+
|
378
436
|
- [#355](https://github.com/phstc/shoryuken/pull/355)
|
379
437
|
|
380
438
|
- Add a delay as a CLI param
|
439
|
+
|
381
440
|
- [#350](https://github.com/phstc/shoryuken/pull/350)
|
382
441
|
|
383
442
|
- Add `sqs purge` command. See https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_PurgeQueue.html
|
@@ -386,6 +445,7 @@
|
|
386
445
|
## [v3.0.4] - 2017-03-24
|
387
446
|
|
388
447
|
- Add `sqs purge` command. See https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_PurgeQueue.html
|
448
|
+
|
389
449
|
- [#344](https://github.com/phstc/shoryuken/pull/344)
|
390
450
|
|
391
451
|
- Fix "Thread exhaustion" error. This issue was most noticed when using long polling. @waynerobinson :beers: for pairing up on this.
|
@@ -409,18 +469,23 @@
|
|
409
469
|
## [v3.0.0] - 2017-03-12
|
410
470
|
|
411
471
|
- Replace Celluloid with Concurrent Ruby
|
472
|
+
|
412
473
|
- [#291](https://github.com/phstc/shoryuken/pull/291)
|
413
474
|
|
414
475
|
- 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
|
476
|
+
|
415
477
|
- [#317](https://github.com/phstc/shoryuken/pull/317)
|
416
478
|
|
417
479
|
- Remove deprecation warnings
|
480
|
+
|
418
481
|
- [#326](https://github.com/phstc/shoryuken/pull/326)
|
419
482
|
|
420
483
|
- Allow dynamic adding queues
|
484
|
+
|
421
485
|
- [#322](https://github.com/phstc/shoryuken/pull/322)
|
422
486
|
|
423
487
|
- Support retry_intervals passed in as a lambda. Auto coerce intervals into integer
|
488
|
+
|
424
489
|
- [#329](https://github.com/phstc/shoryuken/pull/329)
|
425
490
|
|
426
491
|
- Add SQS commands `shoryuken help sqs`, such as `ls`, `mv`, `dump` and `requeue`
|
@@ -429,9 +494,11 @@
|
|
429
494
|
## [v2.1.3] - 2017-01-27
|
430
495
|
|
431
496
|
- Show a warn message when batch isn't supported
|
497
|
+
|
432
498
|
- [#302](https://github.com/phstc/shoryuken/pull/302)
|
433
499
|
|
434
500
|
- Require Celluloid ~> 17
|
501
|
+
|
435
502
|
- [#305](https://github.com/phstc/shoryuken/pull/305)
|
436
503
|
|
437
504
|
- Fix excessive logging when 0 messages found
|
@@ -440,18 +507,23 @@
|
|
440
507
|
## [v2.1.2] - 2016-12-22
|
441
508
|
|
442
509
|
- Fix loading `logfile` from shoryuken.yml
|
510
|
+
|
443
511
|
- [#296](https://github.com/phstc/shoryuken/pull/296)
|
444
512
|
|
445
513
|
- Add support for Strict priority polling (pending documentation)
|
514
|
+
|
446
515
|
- [#288](https://github.com/phstc/shoryuken/pull/288)
|
447
516
|
|
448
517
|
- Add `test_workers` for end-to-end testing supporting
|
518
|
+
|
449
519
|
- [#286](https://github.com/phstc/shoryuken/pull/286)
|
450
520
|
|
451
521
|
- Update README documenting `configure_client` and `configure_server`
|
522
|
+
|
452
523
|
- [#283](https://github.com/phstc/shoryuken/pull/283)
|
453
524
|
|
454
525
|
- Fix memory leak caused by async tracking busy threads
|
526
|
+
|
455
527
|
- [#289](https://github.com/phstc/shoryuken/pull/289)
|
456
528
|
|
457
529
|
- Refactor fetcher, polling strategy and manager
|
@@ -465,24 +537,31 @@
|
|
465
537
|
## [v2.1.0] - 2016-12-03
|
466
538
|
|
467
539
|
- Fix celluloid "running in BACKPORTED mode" warning
|
540
|
+
|
468
541
|
- [#260](https://github.com/phstc/shoryuken/pull/260)
|
469
542
|
|
470
543
|
- Allow setting the aws configuration in 'Shoryuken.configure_server'
|
544
|
+
|
471
545
|
- [#252](https://github.com/phstc/shoryuken/pull/252)
|
472
546
|
|
473
547
|
- Allow requiring a file or dir a through `-r`
|
548
|
+
|
474
549
|
- [#248](https://github.com/phstc/shoryuken/pull/248)
|
475
550
|
|
476
551
|
- Reduce info log verbosity
|
552
|
+
|
477
553
|
- [#243](https://github.com/phstc/shoryuken/pull/243)
|
478
554
|
|
479
555
|
- Fix auto extender when using ActiveJob
|
556
|
+
|
480
557
|
- [#3213](https://github.com/phstc/shoryuken/pull/213)
|
481
558
|
|
482
559
|
- Add FIFO queue support
|
560
|
+
|
483
561
|
- [#272](https://github.com/phstc/shoryuken/issues/272)
|
484
562
|
|
485
563
|
- Deprecates initialize_aws
|
564
|
+
|
486
565
|
- [#269](https://github.com/phstc/shoryuken/pull/269)
|
487
566
|
|
488
567
|
- [Other miscellaneous updates](https://github.com/phstc/shoryuken/compare/v2.0.11...v2.1.0)
|
@@ -510,22 +589,28 @@
|
|
510
589
|
## [v2.0.7] - 2016-06-06
|
511
590
|
|
512
591
|
- Daemonize before loading environment
|
592
|
+
|
513
593
|
- [#219](https://github.com/phstc/shoryuken/pull/219)
|
514
594
|
|
515
595
|
- Fix initialization when using rails
|
596
|
+
|
516
597
|
- [#197](https://github.com/phstc/shoryuken/pull/197)
|
517
598
|
|
518
599
|
- Improve message fetching
|
600
|
+
|
519
601
|
- [#214](https://github.com/phstc/shoryuken/pull/214)
|
520
602
|
- [#f4640d9](https://github.com/phstc/shoryuken/commit/f4640d9)
|
521
603
|
|
522
604
|
- Fix hard shutdown if there are some busy workers when signal received
|
605
|
+
|
523
606
|
- [#215](https://github.com/phstc/shoryuken/pull/215)
|
524
607
|
|
525
608
|
- Fix `rake console` task
|
609
|
+
|
526
610
|
- [#208](https://github.com/phstc/shoryuken/pull/208)
|
527
611
|
|
528
612
|
- Isolate `MessageVisibilityExtender` as new middleware
|
613
|
+
|
529
614
|
- [#199](https://github.com/phstc/shoryuken/pull/190)
|
530
615
|
|
531
616
|
- Fail on non-existent queues
|
@@ -539,6 +624,7 @@
|
|
539
624
|
## [v2.0.5] - 2016-04-17
|
540
625
|
|
541
626
|
- Fix log initialization when using `Shoryuken::EnvironmentLoader#load`
|
627
|
+
|
542
628
|
- [#191](https://github.com/phstc/shoryuken/pull/191)
|
543
629
|
|
544
630
|
- Fix `enqueue_at` in the ActiveJob Adapter
|
@@ -547,12 +633,15 @@
|
|
547
633
|
## [v2.0.4] - 2016-02-04
|
548
634
|
|
549
635
|
- Add Rails 3 support
|
636
|
+
|
550
637
|
- [#175](https://github.com/phstc/shoryuken/pull/175)
|
551
638
|
|
552
639
|
- Allow symbol as a queue name in shoryuken_options
|
640
|
+
|
553
641
|
- [#177](https://github.com/phstc/shoryuken/pull/177)
|
554
642
|
|
555
643
|
- Make sure bundler is always updated on Travis CI
|
644
|
+
|
556
645
|
- [#176](https://github.com/phstc/shoryuken/pull/176)
|
557
646
|
|
558
647
|
- Add Rails 5 compatibility
|
@@ -561,6 +650,7 @@
|
|
561
650
|
## [v2.0.3] - 2015-12-30
|
562
651
|
|
563
652
|
- Allow multiple queues per worker
|
653
|
+
|
564
654
|
- [#164](https://github.com/phstc/shoryuken/pull/164)
|
565
655
|
|
566
656
|
- Fix typo
|
@@ -569,15 +659,19 @@
|
|
569
659
|
## [v2.0.2] - 2015-10-27
|
570
660
|
|
571
661
|
- Fix warnings that are triggered in some cases with the raise_error matcher
|
662
|
+
|
572
663
|
- [#144](https://github.com/phstc/shoryuken/pull/144)
|
573
664
|
|
574
665
|
- Add lifecycle event registration support
|
666
|
+
|
575
667
|
- [#141](https://github.com/phstc/shoryuken/pull/141)
|
576
668
|
|
577
669
|
- Allow passing array of messages to send_messages
|
670
|
+
|
578
671
|
- [#140](https://github.com/phstc/shoryuken/pull/140)
|
579
672
|
|
580
673
|
- Fix Active Job queue prefixing in Rails apps
|
674
|
+
|
581
675
|
- [#139](https://github.com/phstc/shoryuken/pull/139)
|
582
676
|
|
583
677
|
- Enable override the default queue with a :queue option
|
@@ -591,9 +685,11 @@
|
|
591
685
|
## [v2.0.0] - 2015-09-22
|
592
686
|
|
593
687
|
- Allow configuration of SQS/SNS endpoints via environment variables
|
688
|
+
|
594
689
|
- [#130](https://github.com/phstc/shoryuken/pull/130)
|
595
690
|
|
596
691
|
- Expose queue_name in the message object
|
692
|
+
|
597
693
|
- [#127](https://github.com/phstc/shoryuken/pull/127)
|
598
694
|
|
599
695
|
- 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
|
@@ -65,10 +67,14 @@ module Shoryuken
|
|
65
67
|
Polling::WeightedRoundRobin
|
66
68
|
when 'StrictPriority'
|
67
69
|
Polling::StrictPriority
|
70
|
+
when String
|
71
|
+
begin
|
72
|
+
Object.const_get(strategy)
|
73
|
+
rescue NameError
|
74
|
+
raise ArgumentError, "#{strategy} is not a valid polling_strategy"
|
75
|
+
end
|
68
76
|
when Class
|
69
77
|
strategy
|
70
|
-
else
|
71
|
-
raise ArgumentError, "#{strategy} is not a valid polling_strategy"
|
72
78
|
end
|
73
79
|
end
|
74
80
|
|
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.1
|
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-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|