shoryuken 2.1.2 → 2.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|