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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd50ddb123d1c14d3ff0a0ac562c3e156afd2dfd
4
- data.tar.gz: 9bcd1a88456f1d8454609d7440d209bc78b5a89b
3
+ metadata.gz: 84439f7b9ae680a0363a63e98c6cbba645541b86
4
+ data.tar.gz: 72e3f662b660f594d78bb4328b137c43774eaf9d
5
5
  SHA512:
6
- metadata.gz: 64680cf91fbf51372720f872f0ac7cced4d42e2b86c61b66137fd5993f1e58ca2ab86c907ff49eb8c464817c5c4efe53ea75e234a4ee01a4d558164535086c46
7
- data.tar.gz: 75fbaab18cd22e600ccd6e705eef80532faf0236a434803cf0678dc14cf6b7fac30e40d0350e8be2b47eb8dd54289667eeccb12a49af0febbcafc0d5594e05f5
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)
@@ -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
@@ -5,6 +5,11 @@ module Shoryuken
5
5
  include Util
6
6
 
7
7
  def call(worker, queue, sqs_msg, body)
8
+ if sqs_msg.is_a?(Array)
9
+ logger.warn { "Exponential backoff isn't supported for batch workers" }
10
+ return yield
11
+ end
12
+
8
13
  started_at = Time.now
9
14
  yield
10
15
  rescue
@@ -1,3 +1,3 @@
1
1
  module Shoryuken
2
- VERSION = '2.1.2'
2
+ VERSION = '2.1.3'
3
3
  end
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.16'
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.2
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: 2016-12-23 00:00:00.000000000 Z
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.16'
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.16'
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