dalliance 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dalliance.rb +21 -7
- data/lib/dalliance/version.rb +1 -1
- data/spec/dalliance/asynchronous_delayed_job_spec.rb +10 -0
- data/spec/dalliance/asynchronous_resque_spec.rb +15 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e585e16bce792017e3427f68b18d991a5cdb3650b33703d56f1703240cfa3e09
|
4
|
+
data.tar.gz: 432c266fa7e05719f8074f615b439d9b9ae94ac06d429b0ff13740fabbb5f0bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab1f1ffb14924b56bcca0afe1601ac44489ed32a6bfbc56e4bc417f6849e26574c1c82204b8852db9853bb7437ac9939a9164d0a70e0accdc486136fb7f50398
|
7
|
+
data.tar.gz: 774cd874ad72796d024e2140889bc498332485ce5ec952a424f1ef03763cba580d302275923812882a5954f66a95f86079667b30db19ef37d986cb6b2f715f43
|
data/lib/dalliance.rb
CHANGED
@@ -236,20 +236,21 @@ module Dalliance
|
|
236
236
|
end
|
237
237
|
|
238
238
|
def dalliance_background_reprocess(background_processing = nil)
|
239
|
+
# Reset state to 'pending' before queueing up
|
240
|
+
# Otherwise the model will stay on completed/processing_error until the job
|
241
|
+
# is taken by a worker, which could be a long time after this method is
|
242
|
+
# called.
|
243
|
+
reprocess_dalliance!
|
239
244
|
if background_processing || (background_processing.nil? && self.class.dalliance_options[:background_processing])
|
240
|
-
self.class.dalliance_options[:worker_class].enqueue(self, processing_queue, :
|
245
|
+
self.class.dalliance_options[:worker_class].enqueue(self, processing_queue, :do_dalliance_reprocess)
|
241
246
|
else
|
242
|
-
|
247
|
+
do_dalliance_reprocess(false)
|
243
248
|
end
|
244
249
|
end
|
245
250
|
|
246
251
|
def dalliance_reprocess(background_processing = false)
|
247
252
|
reprocess_dalliance!
|
248
|
-
|
249
|
-
do_dalliance_process(
|
250
|
-
perform_method: self.class.dalliance_options[:reprocess_method],
|
251
|
-
background_processing: background_processing
|
252
|
-
)
|
253
|
+
do_dalliance_reprocess(background_processing)
|
253
254
|
end
|
254
255
|
|
255
256
|
def do_dalliance_process(perform_method:, background_processing: false)
|
@@ -339,6 +340,19 @@ module Dalliance
|
|
339
340
|
end
|
340
341
|
end
|
341
342
|
|
343
|
+
private
|
344
|
+
|
345
|
+
# Executes the reprocessing method defined in the model's dalliance options.
|
346
|
+
#
|
347
|
+
# @param [Boolean] background_processing
|
348
|
+
# flag if this is called from a background worker. Defaults to false.
|
349
|
+
def do_dalliance_reprocess(background_processing = false)
|
350
|
+
do_dalliance_process(
|
351
|
+
perform_method: self.class.dalliance_options[:reprocess_method],
|
352
|
+
background_processing: background_processing
|
353
|
+
)
|
354
|
+
end
|
355
|
+
|
342
356
|
module Glue
|
343
357
|
extend ActiveSupport::Concern
|
344
358
|
|
data/lib/dalliance/version.rb
CHANGED
@@ -107,6 +107,16 @@ RSpec.describe DallianceModel do
|
|
107
107
|
|
108
108
|
expect(subject.dalliance_duration).to be_between(original_duration, Float::INFINITY)
|
109
109
|
end
|
110
|
+
|
111
|
+
it "resets the dalliance_status to 'pending'" do
|
112
|
+
subject.update_column(:dalliance_status, 'processing_error')
|
113
|
+
expect { subject.dalliance_background_reprocess }
|
114
|
+
.to change(subject, :dalliance_status)
|
115
|
+
.to('pending')
|
116
|
+
|
117
|
+
Delayed::Worker.new(:queues => [:dalliance]).work_off
|
118
|
+
expect(subject).to be_successful
|
119
|
+
end
|
110
120
|
end
|
111
121
|
|
112
122
|
context "another_queue" do
|
@@ -151,6 +151,21 @@ RSpec.describe DallianceModel do
|
|
151
151
|
|
152
152
|
expect(subject.dalliance_duration).to be_between(original_duration, Float::INFINITY)
|
153
153
|
end
|
154
|
+
|
155
|
+
it "resets the dalliance_status to 'pending'" do
|
156
|
+
subject.update_column(:dalliance_status, 'processing_error')
|
157
|
+
|
158
|
+
Resque::Stat.clear(:processed)
|
159
|
+
Resque::Stat.clear(:failed)
|
160
|
+
|
161
|
+
expect { subject.dalliance_background_reprocess }
|
162
|
+
.to change(subject, :dalliance_status)
|
163
|
+
.to('pending')
|
164
|
+
|
165
|
+
Resque::Worker.new(:dalliance).process
|
166
|
+
|
167
|
+
expect(subject).to be_successful
|
168
|
+
end
|
154
169
|
end
|
155
170
|
|
156
171
|
context "raise error" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dalliance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Sullivan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -204,7 +204,7 @@ files:
|
|
204
204
|
homepage: https://github.com/annkissam/dalliance
|
205
205
|
licenses: []
|
206
206
|
metadata: {}
|
207
|
-
post_install_message:
|
207
|
+
post_install_message:
|
208
208
|
rdoc_options: []
|
209
209
|
require_paths:
|
210
210
|
- lib
|
@@ -219,9 +219,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
219
|
- !ruby/object:Gem::Version
|
220
220
|
version: '0'
|
221
221
|
requirements: []
|
222
|
-
rubyforge_project:
|
222
|
+
rubyforge_project:
|
223
223
|
rubygems_version: 2.7.6
|
224
|
-
signing_key:
|
224
|
+
signing_key:
|
225
225
|
specification_version: 4
|
226
226
|
summary: Wrapper for an ActiveRecord model with a single ascynhronous method
|
227
227
|
test_files:
|