sidekiq-promise 0.1.1 → 0.2.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/README.md +4 -2
- data/lib/sidekiq/promise/middleware.rb +2 -2
- data/lib/sidekiq/promise/server_middleware.rb +6 -2
- data/lib/sidekiq/promise/version.rb +1 -1
- data/lib/sidekiq/promise/worker.rb +1 -1
- data/spec/acceptance/promise_promise_value_spec.rb +16 -0
- data/spec/acceptance/promise_value_spec.rb +16 -0
- data/spec/lib/sidekiq/promise/middleware_spec.rb +2 -2
- data/spec/lib/sidekiq/promise/server_middleware_spec.rb +3 -2
- data/spec/workers/promising_valuable_worker.rb +9 -0
- data/spec/workers/valuable_worker.rb +7 -0
- metadata +9 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8fe996e13d273ffa5bf387826e03ffd70459c18
|
4
|
+
data.tar.gz: 1dfcffb84b77c3f6a87fe8766ed400c2d49f705f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77f93d1654e06bf548b1fe56d3b10405da12e981db7023717440ff0fa7629c3d3f95e3dcfe1b47177481de637815edad676650a5c1eb7ca015b65f9485428f15
|
7
|
+
data.tar.gz: 6db709578b3a96ecc0872b4ce28e49c9822b136bc7c78e96d4820d6f984c49d21bb45fab06f74b1c1e4ea23219bafdf9ae53ab507273ee4b877160cbdf20c9b4
|
data/README.md
CHANGED
@@ -10,7 +10,9 @@
|
|
10
10
|
|
11
11
|
Add this line to your application's Gemfile:
|
12
12
|
|
13
|
-
|
13
|
+
```ruby
|
14
|
+
gem 'sidekiq-promise'
|
15
|
+
```
|
14
16
|
|
15
17
|
And then execute:
|
16
18
|
|
@@ -75,7 +77,7 @@ notifies the user that the processing is complete.
|
|
75
77
|
|
76
78
|
## Contributing
|
77
79
|
|
78
|
-
1. Fork it ( https://github.com/
|
80
|
+
1. Fork it ( https://github.com/jamesotron/sidekiq-promise/fork )
|
79
81
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
80
82
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
81
83
|
4. Push to the branch (`git push origin my-new-feature`)
|
@@ -12,8 +12,8 @@ module Sidekiq
|
|
12
12
|
publish_message redis_pool, status: 'dequeued', job: job, jid: job['jid']
|
13
13
|
end
|
14
14
|
|
15
|
-
def job_completed job, redis_pool=Sidekiq.redis_pool
|
16
|
-
publish_message redis_pool, status: 'complete', job: job, jid: job['jid']
|
15
|
+
def job_completed job, result=nil, redis_pool=Sidekiq.redis_pool
|
16
|
+
publish_message redis_pool, status: 'complete', job: job, jid: job['jid'], result: result
|
17
17
|
end
|
18
18
|
|
19
19
|
def job_errored job, e, redis_pool=Sidekiq.redis_pool
|
@@ -5,8 +5,12 @@ module Sidekiq
|
|
5
5
|
def call worker, job, queue
|
6
6
|
job_dequeued job
|
7
7
|
result = yield
|
8
|
-
|
9
|
-
|
8
|
+
if thenable? result
|
9
|
+
result.raise
|
10
|
+
job_completed job, result.result
|
11
|
+
else
|
12
|
+
job_completed job, result
|
13
|
+
end
|
10
14
|
rescue Exception => e
|
11
15
|
job_errored job, e
|
12
16
|
raise e
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Promise promise value' do
|
4
|
+
before(:all) { start_worker }
|
5
|
+
after(:all) { kill_worker }
|
6
|
+
after { clear_jobs }
|
7
|
+
|
8
|
+
let(:value) { rand(99) }
|
9
|
+
let(:result) { value * value }
|
10
|
+
let(:promise) { PromisingValuableWorker.as_promise(value) }
|
11
|
+
subject { promise }
|
12
|
+
|
13
|
+
its(:final) { should be_resolved }
|
14
|
+
its(:final) { should_not be_rejected }
|
15
|
+
its(:result) { should eq result }
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Promise value' do
|
4
|
+
before(:all) { start_worker }
|
5
|
+
after(:all) { kill_worker }
|
6
|
+
after { clear_jobs }
|
7
|
+
|
8
|
+
let(:value) { rand(99) }
|
9
|
+
let(:result) { value * value }
|
10
|
+
let(:promise) { ValuableWorker.as_promise(value) }
|
11
|
+
subject { promise }
|
12
|
+
|
13
|
+
its(:final) { should be_resolved }
|
14
|
+
its(:final) { should_not be_rejected }
|
15
|
+
its(:result) { should eq result }
|
16
|
+
end
|
@@ -21,8 +21,8 @@ describe Sidekiq::Promise::Middleware do
|
|
21
21
|
|
22
22
|
describe '#job_completed' do
|
23
23
|
it 'delegates to #publish_message' do
|
24
|
-
expect(middleware).to receive(:publish_message).with(redis_pool, {status: 'complete', job: {}, jid: nil})
|
25
|
-
middleware.job_completed Hash.new, redis_pool
|
24
|
+
expect(middleware).to receive(:publish_message).with(redis_pool, {status: 'complete', job: {}, jid: nil, result: :result})
|
25
|
+
middleware.job_completed Hash.new, :result, redis_pool
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Sidekiq::Promise::ServerMiddleware do
|
4
4
|
let(:worker) { double :worker }
|
5
|
-
let(:job) {
|
5
|
+
let(:job) { { jid: '12345' } }
|
6
6
|
let(:queue) { 'default' }
|
7
7
|
let(:middleware) { described_class.new }
|
8
8
|
|
@@ -10,7 +10,8 @@ describe Sidekiq::Promise::ServerMiddleware do
|
|
10
10
|
When 'the job is successful' do
|
11
11
|
it 'dequeues the job, then yields, then completes' do
|
12
12
|
expect(middleware).to receive(:job_dequeued).with(job)
|
13
|
-
expect(middleware).to receive(:job_completed).with(job)
|
13
|
+
expect(middleware).to receive(:job_completed).with(job, [[]])
|
14
|
+
# ↓ [[]] is returned by RSpec's block probe. ↑
|
14
15
|
expect { |b| middleware.call(worker, job, queue, &b) }.to yield_control
|
15
16
|
end
|
16
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-promise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Harton
|
@@ -174,6 +174,8 @@ files:
|
|
174
174
|
- spec/acceptance/completing_job_spec.rb
|
175
175
|
- spec/acceptance/crashing_job_spec.rb
|
176
176
|
- spec/acceptance/failing_job_spec.rb
|
177
|
+
- spec/acceptance/promise_promise_value_spec.rb
|
178
|
+
- spec/acceptance/promise_value_spec.rb
|
177
179
|
- spec/acceptance/promising_job_spec.rb
|
178
180
|
- spec/acceptance/promising_to_fail_worker_spec.rb
|
179
181
|
- spec/lib/sidekiq/promise/client_middleware_spec.rb
|
@@ -187,9 +189,11 @@ files:
|
|
187
189
|
- spec/support/sidekiq_helpers.rb
|
188
190
|
- spec/workers/crashy_worker.rb
|
189
191
|
- spec/workers/promising_to_fail_worker.rb
|
192
|
+
- spec/workers/promising_valuable_worker.rb
|
190
193
|
- spec/workers/promising_worker.rb
|
191
194
|
- spec/workers/raisey_worker.rb
|
192
195
|
- spec/workers/sleepy_worker.rb
|
196
|
+
- spec/workers/valuable_worker.rb
|
193
197
|
homepage: https://github.com/jamesotron/sidekiq-promise
|
194
198
|
licenses:
|
195
199
|
- MIT
|
@@ -218,6 +222,8 @@ test_files:
|
|
218
222
|
- spec/acceptance/completing_job_spec.rb
|
219
223
|
- spec/acceptance/crashing_job_spec.rb
|
220
224
|
- spec/acceptance/failing_job_spec.rb
|
225
|
+
- spec/acceptance/promise_promise_value_spec.rb
|
226
|
+
- spec/acceptance/promise_value_spec.rb
|
221
227
|
- spec/acceptance/promising_job_spec.rb
|
222
228
|
- spec/acceptance/promising_to_fail_worker_spec.rb
|
223
229
|
- spec/lib/sidekiq/promise/client_middleware_spec.rb
|
@@ -231,6 +237,8 @@ test_files:
|
|
231
237
|
- spec/support/sidekiq_helpers.rb
|
232
238
|
- spec/workers/crashy_worker.rb
|
233
239
|
- spec/workers/promising_to_fail_worker.rb
|
240
|
+
- spec/workers/promising_valuable_worker.rb
|
234
241
|
- spec/workers/promising_worker.rb
|
235
242
|
- spec/workers/raisey_worker.rb
|
236
243
|
- spec/workers/sleepy_worker.rb
|
244
|
+
- spec/workers/valuable_worker.rb
|