shoryuken 2.1.2 → 2.1.3
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/CHANGELOG.md +10 -0
- data/lib/shoryuken/fetcher.rb +1 -1
- data/lib/shoryuken/middleware/server/auto_extend_visibility.rb +8 -0
- data/lib/shoryuken/middleware/server/exponential_backoff_retry.rb +5 -0
- data/lib/shoryuken/version.rb +1 -1
- data/shoryuken.gemspec +1 -2
- data/spec/shoryuken/middleware/server/auto_extend_visibility_spec.rb +7 -1
- data/spec/shoryuken/middleware/server/exponential_backoff_retry_spec.rb +7 -1
- data/spec/spec_helper.rb +0 -10
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84439f7b9ae680a0363a63e98c6cbba645541b86
|
4
|
+
data.tar.gz: 72e3f662b660f594d78bb4328b137c43774eaf9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c50f7e305327dc7e155c84a8e520579b3d72f0e5d0d224d6b9a0e346a6923c5348e66bd1c63e3a3cbd9ed22adc488680194266d80004556670250c7cc8db450
|
7
|
+
data.tar.gz: c0154a86dd1098ff213c55411fb6fcc50b6a5f2eebb5d207443cce9952355ed5f2ab191f5d321ac91322bb2f1e44b3099404d7b0018aaf300d450f87450d85c2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## [v2.1.3] - 2017-01-27
|
2
|
+
- Show a warn message when batch isn't supported
|
3
|
+
- [#302](https://github.com/phstc/shoryuken/pull/302)
|
4
|
+
|
5
|
+
- Require Celluloid ~> 17
|
6
|
+
- [#305](https://github.com/phstc/shoryuken/pull/305)
|
7
|
+
|
8
|
+
- Fix excessive logging when 0 messages found
|
9
|
+
- [#307](https://github.com/phstc/shoryuken/pull/307)
|
10
|
+
|
1
11
|
## [v2.1.2] - 2016-12-22
|
2
12
|
- Fix loading `logfile` from shoryuken.yml
|
3
13
|
- [#296](https://github.com/phstc/shoryuken/pull/296)
|
data/lib/shoryuken/fetcher.rb
CHANGED
@@ -14,7 +14,7 @@ module Shoryuken
|
|
14
14
|
limit = available_processors > FETCH_LIMIT ? FETCH_LIMIT : available_processors
|
15
15
|
|
16
16
|
sqs_msgs = Array(receive_messages(queue, limit))
|
17
|
-
logger.info { "Found #{sqs_msgs.size} messages for '#{queue.name}'" }
|
17
|
+
logger.info { "Found #{sqs_msgs.size} messages for '#{queue.name}'" } if !sqs_msgs.empty?
|
18
18
|
logger.debug { "Fetcher for '#{queue}' completed in #{elapsed(started_at)} ms" }
|
19
19
|
sqs_msgs
|
20
20
|
rescue => ex
|
@@ -4,10 +4,18 @@ module Shoryuken
|
|
4
4
|
module Middleware
|
5
5
|
module Server
|
6
6
|
class AutoExtendVisibility
|
7
|
+
include Util
|
8
|
+
|
7
9
|
EXTEND_UPFRONT_SECONDS = 5
|
8
10
|
|
9
11
|
def call(worker, queue, sqs_msg, body)
|
12
|
+
if sqs_msg.is_a?(Array)
|
13
|
+
logger.warn { "Auto extend visibility isn't supported for batch workers" }
|
14
|
+
return yield
|
15
|
+
end
|
16
|
+
|
10
17
|
timer = auto_visibility_timer(worker, queue, sqs_msg, body)
|
18
|
+
|
11
19
|
begin
|
12
20
|
yield
|
13
21
|
ensure
|
data/lib/shoryuken/version.rb
CHANGED
data/shoryuken.gemspec
CHANGED
@@ -21,9 +21,8 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'rake'
|
22
22
|
spec.add_development_dependency 'rspec'
|
23
23
|
spec.add_development_dependency 'pry-byebug'
|
24
|
-
spec.add_development_dependency 'nokogiri'
|
25
24
|
spec.add_development_dependency 'dotenv'
|
26
25
|
|
27
26
|
spec.add_dependency 'aws-sdk-core', '~> 2'
|
28
|
-
spec.add_dependency 'celluloid', '~> 0.
|
27
|
+
spec.add_dependency 'celluloid', '~> 0.17'
|
29
28
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Shoryuken::Middleware::Server::AutoExtendVisibility do
|
3
|
+
RSpec.describe Shoryuken::Middleware::Server::AutoExtendVisibility do
|
4
4
|
let(:queue) { 'default' }
|
5
5
|
let(:visibility_timeout) { 3 }
|
6
6
|
let(:extend_upfront) { 1 }
|
@@ -34,6 +34,12 @@ describe Shoryuken::Middleware::Server::AutoExtendVisibility do
|
|
34
34
|
stub_const('Shoryuken::Middleware::Server::AutoExtendVisibility::EXTEND_UPFRONT_SECONDS', extend_upfront)
|
35
35
|
end
|
36
36
|
|
37
|
+
context 'when batch worker' do
|
38
|
+
it 'yields' do
|
39
|
+
expect { |b| subject.call(nil, nil, [], nil, &b) }.to yield_control
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
37
43
|
it 'extends message visibility if jobs takes a long time' do
|
38
44
|
TestWorker.get_shoryuken_options['auto_visibility_timeout'] = true
|
39
45
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Shoryuken::Middleware::Server::ExponentialBackoffRetry do
|
3
|
+
RSpec.describe Shoryuken::Middleware::Server::ExponentialBackoffRetry do
|
4
4
|
let(:queue) { 'default' }
|
5
5
|
let(:sqs_queue) { double Shoryuken::Queue }
|
6
6
|
let(:sqs_msg) { double Shoryuken::Message, queue_url: queue, body: 'test', receipt_handle: SecureRandom.uuid,
|
@@ -10,6 +10,12 @@ describe Shoryuken::Middleware::Server::ExponentialBackoffRetry do
|
|
10
10
|
allow(Shoryuken::Client).to receive(:queues).with(queue).and_return(sqs_queue)
|
11
11
|
end
|
12
12
|
|
13
|
+
context 'when batch worker' do
|
14
|
+
it 'yields' do
|
15
|
+
expect { |b| subject.call(nil, nil, [], nil, &b) }.to yield_control
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
13
19
|
context 'when a job succeeds' do
|
14
20
|
it 'does not retry the job' do
|
15
21
|
TestWorker.get_shoryuken_options['retry_intervals'] = [300, 1800]
|
data/spec/spec_helper.rb
CHANGED
@@ -5,7 +5,6 @@ require 'pry-byebug'
|
|
5
5
|
require 'celluloid/current'
|
6
6
|
require 'shoryuken'
|
7
7
|
require 'json'
|
8
|
-
require 'multi_xml'
|
9
8
|
require 'dotenv'
|
10
9
|
Dotenv.load
|
11
10
|
|
@@ -21,15 +20,6 @@ Shoryuken::EnvironmentLoader.setup_options(config_file: config_file)
|
|
21
20
|
Shoryuken.logger.level = Logger::UNKNOWN
|
22
21
|
Celluloid.logger.level = Logger::UNKNOWN
|
23
22
|
|
24
|
-
# I'm not sure whether this is an issue specific to running Shoryuken against github.com/comcast/cmb
|
25
|
-
# as opposed to AWS itself, but sometimes the receive_messages call returns XML that looks like this:
|
26
|
-
#
|
27
|
-
# <ReceiveMessageResponse>\n\t<ReceiveMessageResult>\n\t</ReceiveMessageResult> ... </ReceiveMessageResponse>
|
28
|
-
#
|
29
|
-
# The default MultiXML parser is ReXML, which seems to mishandle \n\t chars. Nokogiri seems to be
|
30
|
-
# the only one that correctly ignore this whitespace.
|
31
|
-
MultiXml.parser = :nokogiri
|
32
|
-
|
33
23
|
class TestWorker
|
34
24
|
include Shoryuken::Worker
|
35
25
|
|
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: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pablo Cantero
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-01-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -67,20 +67,6 @@ dependencies:
|
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: nokogiri
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
70
|
- !ruby/object:Gem::Dependency
|
85
71
|
name: dotenv
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,14 +101,14 @@ dependencies:
|
|
115
101
|
requirements:
|
116
102
|
- - "~>"
|
117
103
|
- !ruby/object:Gem::Version
|
118
|
-
version: '0.
|
104
|
+
version: '0.17'
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
108
|
requirements:
|
123
109
|
- - "~>"
|
124
110
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0.
|
111
|
+
version: '0.17'
|
126
112
|
description: Shoryuken is a super efficient AWS SQS thread based message processor
|
127
113
|
email:
|
128
114
|
- pablo@pablocantero.com
|