shoryuken 2.1.3 → 3.0.0
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/.codeclimate.yml +2 -0
- data/.rubocop.yml +8 -2
- data/.travis.yml +1 -0
- data/CHANGELOG.md +19 -0
- data/README.md +20 -104
- data/Rakefile +0 -1
- data/bin/cli/base.rb +42 -0
- data/bin/cli/sqs.rb +188 -0
- data/bin/shoryuken +47 -9
- data/examples/default_worker.rb +1 -1
- data/lib/shoryuken.rb +75 -55
- data/lib/shoryuken/client.rb +3 -15
- data/lib/shoryuken/default_worker_registry.rb +9 -5
- data/lib/shoryuken/environment_loader.rb +9 -40
- data/lib/shoryuken/fetcher.rb +16 -18
- data/lib/shoryuken/launcher.rb +5 -28
- data/lib/shoryuken/manager.rb +60 -140
- data/lib/shoryuken/message.rb +4 -13
- data/lib/shoryuken/middleware/chain.rb +1 -18
- data/lib/shoryuken/middleware/server/auto_extend_visibility.rb +7 -16
- data/lib/shoryuken/middleware/server/exponential_backoff_retry.rb +25 -21
- data/lib/shoryuken/polling.rb +2 -4
- data/lib/shoryuken/processor.rb +2 -11
- data/lib/shoryuken/queue.rb +1 -3
- data/lib/shoryuken/runner.rb +143 -0
- data/lib/shoryuken/util.rb +0 -8
- data/lib/shoryuken/version.rb +1 -1
- data/lib/shoryuken/worker.rb +1 -1
- data/shoryuken.gemspec +6 -5
- data/spec/integration/launcher_spec.rb +4 -3
- data/spec/shoryuken/client_spec.rb +2 -45
- data/spec/shoryuken/default_worker_registry_spec.rb +12 -10
- data/spec/shoryuken/environment_loader_spec.rb +34 -0
- data/spec/shoryuken/manager_spec.rb +11 -21
- data/spec/shoryuken/middleware/chain_spec.rb +0 -24
- data/spec/shoryuken/middleware/server/auto_extend_visibility_spec.rb +0 -2
- data/spec/shoryuken/middleware/server/exponential_backoff_retry_spec.rb +46 -29
- data/spec/shoryuken/processor_spec.rb +5 -5
- data/spec/shoryuken/{cli_spec.rb → runner_spec.rb} +8 -22
- data/spec/shoryuken_spec.rb +13 -1
- data/spec/spec_helper.rb +3 -8
- metadata +29 -22
- data/lib/shoryuken/aws_config.rb +0 -64
- data/lib/shoryuken/cli.rb +0 -215
- data/lib/shoryuken/sns_arn.rb +0 -27
- data/lib/shoryuken/topic.rb +0 -17
- data/spec/shoryuken/sns_arn_spec.rb +0 -42
- data/spec/shoryuken/topic_spec.rb +0 -32
- data/spec/shoryuken_endpoint.yml +0 -6
@@ -44,28 +44,4 @@ describe Shoryuken::Middleware::Chain do
|
|
44
44
|
expect(final_action).to eq nil
|
45
45
|
expect(recorder).to eq []
|
46
46
|
end
|
47
|
-
|
48
|
-
class DeprecatedMiddleware
|
49
|
-
def call(worker_instance, queue, sqs_msg)
|
50
|
-
@@success = true
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.success?
|
54
|
-
!!@@success
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'patches deprecated middleware' do
|
59
|
-
subject.clear
|
60
|
-
|
61
|
-
expect(Shoryuken.logger).to receive(:warn) do |&block|
|
62
|
-
expect(block.call).to eq('[DEPRECATION] DeprecatedMiddleware#call(worker_instance, queue, sqs_msg) is deprecated. Please use DeprecatedMiddleware#call(worker_instance, queue, sqs_msg, body)')
|
63
|
-
end
|
64
|
-
|
65
|
-
subject.add DeprecatedMiddleware
|
66
|
-
|
67
|
-
subject.invoke TestWorker, 'test', double('SQS msg', body: 'test'), 'test'
|
68
|
-
|
69
|
-
expect(DeprecatedMiddleware.success?).to eq true
|
70
|
-
end
|
71
47
|
end
|
@@ -12,8 +12,6 @@ RSpec.describe Shoryuken::Middleware::Server::AutoExtendVisibility do
|
|
12
12
|
|
13
13
|
# We need to run our worker inside actor context.
|
14
14
|
class Runner
|
15
|
-
include Celluloid
|
16
|
-
|
17
15
|
def run_and_sleep(worker, queue, sqs_msg, interval)
|
18
16
|
Shoryuken::Middleware::Server::AutoExtendVisibility.new.call(worker, queue, sqs_msg, sqs_msg.body) do
|
19
17
|
sleep interval
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
# rubocop:disable Metrics/BlockLength, Metrics/BlockDelimiters
|
3
4
|
RSpec.describe Shoryuken::Middleware::Server::ExponentialBackoffRetry do
|
4
5
|
let(:queue) { 'default' }
|
5
6
|
let(:sqs_queue) { double Shoryuken::Queue }
|
@@ -16,8 +17,8 @@ RSpec.describe Shoryuken::Middleware::Server::ExponentialBackoffRetry do
|
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
19
|
-
context 'when
|
20
|
-
it 'does not retry
|
20
|
+
context 'when no exception' do
|
21
|
+
it 'does not retry' do
|
21
22
|
TestWorker.get_shoryuken_options['retry_intervals'] = [300, 1800]
|
22
23
|
|
23
24
|
expect(sqs_msg).not_to receive(:change_visibility)
|
@@ -26,60 +27,76 @@ RSpec.describe Shoryuken::Middleware::Server::ExponentialBackoffRetry do
|
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
29
|
-
context 'when
|
30
|
+
context 'when an error' do
|
31
|
+
context "and retry_intervals isn't set" do
|
32
|
+
it 'does not retry' do
|
33
|
+
expect(sqs_msg).not_to receive(:change_visibility)
|
30
34
|
|
31
|
-
|
32
|
-
|
35
|
+
expect {
|
36
|
+
subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'Error' }
|
37
|
+
}.to raise_error(RuntimeError, 'Error')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'and retry_intervals is a lambda' do
|
42
|
+
it 'retries' do
|
43
|
+
TestWorker.get_shoryuken_options['retry_intervals'] = ->(_attempts) { 500 }
|
44
|
+
|
45
|
+
allow(sqs_msg).to receive(:queue) { sqs_queue }
|
46
|
+
expect(sqs_msg).to receive(:change_visibility).with(visibility_timeout: 500)
|
33
47
|
|
34
|
-
|
35
|
-
|
36
|
-
}.to raise_error(RuntimeError, 'Error')
|
48
|
+
expect { subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'failed' } }.not_to raise_error
|
49
|
+
end
|
37
50
|
end
|
38
51
|
|
39
|
-
|
40
|
-
|
52
|
+
context 'and retry_intervals is empty' do
|
53
|
+
it 'does not retry' do
|
54
|
+
TestWorker.get_shoryuken_options['retry_intervals'] = []
|
41
55
|
|
42
|
-
|
56
|
+
expect(sqs_msg).not_to receive(:change_visibility)
|
43
57
|
|
44
|
-
|
45
|
-
|
46
|
-
|
58
|
+
expect {
|
59
|
+
subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'Error' }
|
60
|
+
}.to raise_error(RuntimeError, 'Error')
|
61
|
+
end
|
47
62
|
end
|
48
63
|
|
49
|
-
it '
|
64
|
+
it 'uses first interval ' do
|
50
65
|
TestWorker.get_shoryuken_options['retry_intervals'] = [300, 1800]
|
51
66
|
|
52
|
-
allow(sqs_msg).to receive(:queue){ sqs_queue }
|
67
|
+
allow(sqs_msg).to receive(:queue) { sqs_queue }
|
53
68
|
expect(sqs_msg).to receive(:change_visibility).with(visibility_timeout: 300)
|
54
69
|
|
55
70
|
expect { subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'failed' } }.not_to raise_error
|
56
71
|
end
|
57
72
|
|
58
|
-
it '
|
73
|
+
it 'uses matching interval' do
|
59
74
|
TestWorker.get_shoryuken_options['retry_intervals'] = [300, 1800]
|
60
75
|
|
61
|
-
allow(sqs_msg).to receive(:attributes){ {'ApproximateReceiveCount' => 2 } }
|
62
|
-
allow(sqs_msg).to receive(:queue){ sqs_queue }
|
76
|
+
allow(sqs_msg).to receive(:attributes) { { 'ApproximateReceiveCount' => 2 } }
|
77
|
+
allow(sqs_msg).to receive(:queue) { sqs_queue }
|
63
78
|
expect(sqs_msg).to receive(:change_visibility).with(visibility_timeout: 1800)
|
64
79
|
|
65
80
|
expect { subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'failed' } }.not_to raise_error
|
66
81
|
end
|
67
82
|
|
68
|
-
|
69
|
-
|
83
|
+
context 'when attempts exceeds retry_intervals' do
|
84
|
+
it 'uses last interval' do
|
85
|
+
TestWorker.get_shoryuken_options['retry_intervals'] = [300, 1800]
|
70
86
|
|
71
|
-
|
72
|
-
|
73
|
-
|
87
|
+
allow(sqs_msg).to receive(:attributes) { { 'ApproximateReceiveCount' => 3 } }
|
88
|
+
allow(sqs_msg).to receive(:queue) { sqs_queue }
|
89
|
+
expect(sqs_msg).to receive(:change_visibility).with(visibility_timeout: 1800)
|
74
90
|
|
75
|
-
|
91
|
+
expect { subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'failed' } }.not_to raise_error
|
92
|
+
end
|
76
93
|
end
|
77
94
|
|
78
|
-
it 'limits the visibility timeout to 12 hours
|
79
|
-
TestWorker.get_shoryuken_options['retry_intervals'] = [
|
95
|
+
it 'limits the visibility timeout to 12 hours' do
|
96
|
+
TestWorker.get_shoryuken_options['retry_intervals'] = [86_400]
|
80
97
|
|
81
|
-
allow(sqs_msg).to receive(:queue){ sqs_queue }
|
82
|
-
expect(sqs_msg).to receive(:change_visibility).with(visibility_timeout:
|
98
|
+
allow(sqs_msg).to receive(:queue) { sqs_queue }
|
99
|
+
expect(sqs_msg).to receive(:change_visibility).with(visibility_timeout: 43_198)
|
83
100
|
|
84
101
|
expect { subject.call(TestWorker.new, queue, sqs_msg, sqs_msg.body) { raise 'failed' } }.not_to raise_error
|
85
102
|
end
|
@@ -169,7 +169,7 @@ RSpec.describe Shoryuken::Processor do
|
|
169
169
|
end
|
170
170
|
|
171
171
|
it 'invokes middleware' do
|
172
|
-
expect(manager).to receive(:processor_done).with(queue
|
172
|
+
expect(manager).to receive(:processor_done).with(queue)
|
173
173
|
|
174
174
|
expect_any_instance_of(WorkerCalledMiddlewareWorker).to receive(:perform).with(sqs_msg, sqs_msg.body)
|
175
175
|
expect_any_instance_of(WorkerCalledMiddlewareWorker).to receive(:called).with(sqs_msg, queue)
|
@@ -199,7 +199,7 @@ RSpec.describe Shoryuken::Processor do
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it "doesn't invoke middleware" do
|
202
|
-
expect(manager).to receive(:processor_done).with(queue
|
202
|
+
expect(manager).to receive(:processor_done).with(queue)
|
203
203
|
|
204
204
|
expect_any_instance_of(WorkerCalledMiddlewareWorker).to receive(:perform).with(sqs_msg, sqs_msg.body)
|
205
205
|
expect_any_instance_of(WorkerCalledMiddlewareWorker).to_not receive(:called).with(sqs_msg, queue)
|
@@ -212,7 +212,7 @@ RSpec.describe Shoryuken::Processor do
|
|
212
212
|
it 'performs with delete' do
|
213
213
|
TestWorker.get_shoryuken_options['auto_delete'] = true
|
214
214
|
|
215
|
-
expect(manager).to receive(:processor_done).with(queue
|
215
|
+
expect(manager).to receive(:processor_done).with(queue)
|
216
216
|
|
217
217
|
expect_any_instance_of(TestWorker).to receive(:perform).with(sqs_msg, sqs_msg.body)
|
218
218
|
|
@@ -224,7 +224,7 @@ RSpec.describe Shoryuken::Processor do
|
|
224
224
|
it 'performs without delete' do
|
225
225
|
TestWorker.get_shoryuken_options['auto_delete'] = false
|
226
226
|
|
227
|
-
expect(manager).to receive(:processor_done).with(queue
|
227
|
+
expect(manager).to receive(:processor_done).with(queue)
|
228
228
|
|
229
229
|
expect_any_instance_of(TestWorker).to receive(:perform).with(sqs_msg, sqs_msg.body)
|
230
230
|
|
@@ -249,7 +249,7 @@ RSpec.describe Shoryuken::Processor do
|
|
249
249
|
it 'performs without delete' do
|
250
250
|
Shoryuken.worker_registry.clear # unregister TestWorker
|
251
251
|
|
252
|
-
expect(manager).to receive(:processor_done).with(queue
|
252
|
+
expect(manager).to receive(:processor_done).with(queue)
|
253
253
|
|
254
254
|
expect_any_instance_of(TestWorker).to receive(:perform).with(sqs_msg, sqs_msg.body)
|
255
255
|
|
@@ -1,9 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'shoryuken/
|
2
|
+
require 'shoryuken/runner'
|
3
3
|
require 'shoryuken/launcher'
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
# rubocop:disable Metrics/BlockLength
|
6
|
+
RSpec.describe Shoryuken::Runner do
|
7
|
+
let(:cli) { Shoryuken::Runner.instance }
|
7
8
|
|
8
9
|
before do
|
9
10
|
# make sure we do not bail
|
@@ -23,43 +24,28 @@ RSpec.describe Shoryuken::CLI do
|
|
23
24
|
end
|
24
25
|
|
25
26
|
it 'does not raise' do
|
26
|
-
expect { cli.run(
|
27
|
+
expect { cli.run({}) }.to_not raise_error
|
27
28
|
end
|
28
29
|
|
29
30
|
it 'daemonizes with --daemon --logfile' do
|
30
|
-
expect(cli).to receive(:celluloid_loaded?).and_return(false)
|
31
31
|
expect(Process).to receive(:daemon)
|
32
|
-
cli.run(
|
32
|
+
cli.run(daemon: true, logfile: '/dev/null')
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'does NOT daemonize with --logfile' do
|
36
36
|
expect(Process).to_not receive(:daemon)
|
37
|
-
cli.run(
|
37
|
+
cli.run(logfile: '/dev/null')
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'writes PID file with --pidfile' do
|
41
41
|
pidfile = instance_double('File')
|
42
42
|
expect(File).to receive(:open).with('/dev/null', 'w').and_yield(pidfile)
|
43
43
|
expect(pidfile).to receive(:puts).with(Process.pid)
|
44
|
-
cli.run(
|
44
|
+
cli.run(pidfile: '/dev/null')
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
48
|
describe '#daemonize' do
|
49
|
-
before(:each) do
|
50
|
-
allow(cli).to receive(:celluloid_loaded?).and_return(false)
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'raises if logfile is not set' do
|
54
|
-
expect { cli.send(:daemonize, daemon: true) }.to raise_error(ArgumentError)
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'raises if Celluloid is already loaded' do
|
58
|
-
expect(cli).to receive(:celluloid_loaded?).and_return(true)
|
59
|
-
args = { daemon: true, logfile: '/dev/null' }
|
60
|
-
expect { cli.send(:daemonize, args) }.to raise_error(RuntimeError)
|
61
|
-
end
|
62
|
-
|
63
49
|
it 'calls Process.daemon' do
|
64
50
|
args = { daemon: true, logfile: '/dev/null' }
|
65
51
|
expect(Process).to receive(:daemon).with(true, true)
|
data/spec/shoryuken_spec.rb
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Shoryuken do
|
3
|
+
RSpec.describe Shoryuken do
|
4
|
+
describe '.add_queue' do
|
5
|
+
after { Shoryuken.queues.clear }
|
6
|
+
|
7
|
+
it 'adds queues' do
|
8
|
+
described_class.add_queue('default')
|
9
|
+
expect(described_class.queues).to eq(['default'])
|
10
|
+
|
11
|
+
described_class.add_queue('high', 2)
|
12
|
+
expect(described_class.queues).to eq(%w(default high high))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
4
16
|
describe '.register_worker' do
|
5
17
|
it 'registers a worker' do
|
6
18
|
described_class.worker_registry.clear
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,6 @@ require 'bundler/setup'
|
|
2
2
|
Bundler.setup
|
3
3
|
|
4
4
|
require 'pry-byebug'
|
5
|
-
require 'celluloid/current'
|
6
5
|
require 'shoryuken'
|
7
6
|
require 'json'
|
8
7
|
require 'dotenv'
|
@@ -18,7 +17,6 @@ config_file = File.join(File.expand_path('../..', __FILE__), 'spec', 'shoryuken.
|
|
18
17
|
Shoryuken::EnvironmentLoader.setup_options(config_file: config_file)
|
19
18
|
|
20
19
|
Shoryuken.logger.level = Logger::UNKNOWN
|
21
|
-
Celluloid.logger.level = Logger::UNKNOWN
|
22
20
|
|
23
21
|
class TestWorker
|
24
22
|
include Shoryuken::Worker
|
@@ -30,17 +28,15 @@ end
|
|
30
28
|
|
31
29
|
RSpec.configure do |config|
|
32
30
|
# Only run slow tests if SPEC_ALL=true and AWS_ACCESS_KEY_ID is present
|
33
|
-
# The AWS_ACCESS_KEY_ID checker is because Travis CI
|
31
|
+
# The AWS_ACCESS_KEY_ID checker is because Travis CI
|
32
|
+
# does not expose ENV variables to pull requests from forked repositories
|
34
33
|
# http://docs.travis-ci.com/user/pull-requests/
|
35
34
|
config.filter_run_excluding slow: true if ENV['SPEC_ALL'] != 'true' || ENV['AWS_ACCESS_KEY_ID'].nil?
|
36
35
|
|
37
36
|
config.before do
|
38
37
|
Shoryuken::Client.class_variable_set :@@queues, {}
|
39
|
-
Shoryuken::Client.class_variable_set :@@visibility_timeouts, {}
|
40
38
|
|
41
39
|
Shoryuken::Client.sqs = nil
|
42
|
-
Shoryuken::Client.sqs_resource = nil
|
43
|
-
Shoryuken::Client.sns = nil
|
44
40
|
|
45
41
|
Shoryuken.queues.clear
|
46
42
|
|
@@ -49,8 +45,7 @@ RSpec.configure do |config|
|
|
49
45
|
Shoryuken.options[:timeout] = 1
|
50
46
|
Shoryuken.options[:daemon] = nil
|
51
47
|
Shoryuken.options[:logfile] = nil
|
52
|
-
|
53
|
-
Shoryuken.options[:aws].delete(:receive_message)
|
48
|
+
Shoryuken.options[:queues] = nil
|
54
49
|
|
55
50
|
TestWorker.get_shoryuken_options.clear
|
56
51
|
TestWorker.get_shoryuken_options['queue'] = 'default'
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoryuken
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pablo Cantero
|
8
|
-
- Mario Kostelac
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2017-
|
11
|
+
date: 2017-03-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
@@ -96,23 +95,36 @@ dependencies:
|
|
96
95
|
- !ruby/object:Gem::Version
|
97
96
|
version: '2'
|
98
97
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
98
|
+
name: concurrent-ruby
|
100
99
|
requirement: !ruby/object:Gem::Requirement
|
101
100
|
requirements:
|
102
|
-
- - "
|
101
|
+
- - ">="
|
103
102
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0
|
103
|
+
version: '0'
|
105
104
|
type: :runtime
|
106
105
|
prerelease: false
|
107
106
|
version_requirements: !ruby/object:Gem::Requirement
|
108
107
|
requirements:
|
109
|
-
- - "
|
108
|
+
- - ">="
|
110
109
|
- !ruby/object:Gem::Version
|
111
|
-
version: '0
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: thor
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
112
125
|
description: Shoryuken is a super efficient AWS SQS thread based message processor
|
113
126
|
email:
|
114
127
|
- pablo@pablocantero.com
|
115
|
-
- mariokostelac@gmail.com
|
116
128
|
executables:
|
117
129
|
- shoryuken
|
118
130
|
extensions: []
|
@@ -128,12 +140,12 @@ files:
|
|
128
140
|
- LICENSE
|
129
141
|
- README.md
|
130
142
|
- Rakefile
|
143
|
+
- bin/cli/base.rb
|
144
|
+
- bin/cli/sqs.rb
|
131
145
|
- bin/shoryuken
|
132
146
|
- examples/bootstrap_queues.rb
|
133
147
|
- examples/default_worker.rb
|
134
148
|
- lib/shoryuken.rb
|
135
|
-
- lib/shoryuken/aws_config.rb
|
136
|
-
- lib/shoryuken/cli.rb
|
137
149
|
- lib/shoryuken/client.rb
|
138
150
|
- lib/shoryuken/core_ext.rb
|
139
151
|
- lib/shoryuken/default_worker_registry.rb
|
@@ -153,8 +165,7 @@ files:
|
|
153
165
|
- lib/shoryuken/polling.rb
|
154
166
|
- lib/shoryuken/processor.rb
|
155
167
|
- lib/shoryuken/queue.rb
|
156
|
-
- lib/shoryuken/
|
157
|
-
- lib/shoryuken/topic.rb
|
168
|
+
- lib/shoryuken/runner.rb
|
158
169
|
- lib/shoryuken/util.rb
|
159
170
|
- lib/shoryuken/version.rb
|
160
171
|
- lib/shoryuken/worker.rb
|
@@ -163,10 +174,10 @@ files:
|
|
163
174
|
- shoryuken.jpg
|
164
175
|
- spec/integration/launcher_spec.rb
|
165
176
|
- spec/shoryuken.yml
|
166
|
-
- spec/shoryuken/cli_spec.rb
|
167
177
|
- spec/shoryuken/client_spec.rb
|
168
178
|
- spec/shoryuken/core_ext_spec.rb
|
169
179
|
- spec/shoryuken/default_worker_registry_spec.rb
|
180
|
+
- spec/shoryuken/environment_loader_spec.rb
|
170
181
|
- spec/shoryuken/fetcher_spec.rb
|
171
182
|
- spec/shoryuken/manager_spec.rb
|
172
183
|
- spec/shoryuken/middleware/chain_spec.rb
|
@@ -177,11 +188,9 @@ files:
|
|
177
188
|
- spec/shoryuken/polling_spec.rb
|
178
189
|
- spec/shoryuken/processor_spec.rb
|
179
190
|
- spec/shoryuken/queue_spec.rb
|
180
|
-
- spec/shoryuken/
|
181
|
-
- spec/shoryuken/topic_spec.rb
|
191
|
+
- spec/shoryuken/runner_spec.rb
|
182
192
|
- spec/shoryuken/util_spec.rb
|
183
193
|
- spec/shoryuken/worker_spec.rb
|
184
|
-
- spec/shoryuken_endpoint.yml
|
185
194
|
- spec/shoryuken_spec.rb
|
186
195
|
- spec/spec_helper.rb
|
187
196
|
- test_workers/endless_interruptive_worker.rb
|
@@ -206,17 +215,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
215
|
version: '0'
|
207
216
|
requirements: []
|
208
217
|
rubyforge_project:
|
209
|
-
rubygems_version: 2.5.
|
218
|
+
rubygems_version: 2.5.2
|
210
219
|
signing_key:
|
211
220
|
specification_version: 4
|
212
221
|
summary: Shoryuken is a super efficient AWS SQS thread based message processor
|
213
222
|
test_files:
|
214
223
|
- spec/integration/launcher_spec.rb
|
215
224
|
- spec/shoryuken.yml
|
216
|
-
- spec/shoryuken/cli_spec.rb
|
217
225
|
- spec/shoryuken/client_spec.rb
|
218
226
|
- spec/shoryuken/core_ext_spec.rb
|
219
227
|
- spec/shoryuken/default_worker_registry_spec.rb
|
228
|
+
- spec/shoryuken/environment_loader_spec.rb
|
220
229
|
- spec/shoryuken/fetcher_spec.rb
|
221
230
|
- spec/shoryuken/manager_spec.rb
|
222
231
|
- spec/shoryuken/middleware/chain_spec.rb
|
@@ -227,10 +236,8 @@ test_files:
|
|
227
236
|
- spec/shoryuken/polling_spec.rb
|
228
237
|
- spec/shoryuken/processor_spec.rb
|
229
238
|
- spec/shoryuken/queue_spec.rb
|
230
|
-
- spec/shoryuken/
|
231
|
-
- spec/shoryuken/topic_spec.rb
|
239
|
+
- spec/shoryuken/runner_spec.rb
|
232
240
|
- spec/shoryuken/util_spec.rb
|
233
241
|
- spec/shoryuken/worker_spec.rb
|
234
|
-
- spec/shoryuken_endpoint.yml
|
235
242
|
- spec/shoryuken_spec.rb
|
236
243
|
- spec/spec_helper.rb
|