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 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