subservient 0.0.1 → 0.0.2
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/lib/subservient/errors.rb +8 -1
- data/lib/subservient/job.rb +15 -0
- data/lib/subservient/task.rb +7 -9
- data/lib/subservient/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0534f1615f5921685feaa774888040ee1e390b1e
|
4
|
+
data.tar.gz: 34abe0e7a3e55f57652801b9decb2a0c4793d4e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0ffeb6ea489694dbcde6d020ea94fb0a31cb407f4bff0e75223ebaaab3b821e56a187816395d3743d5e27ac7a3eb9398b62a08212981d05a79ad610281717ce
|
7
|
+
data.tar.gz: 090a42d423687f5994b4f12b93651b7f2ca66670656813946908f4e992d0bf3e7e191858385ba467e5eba6be313381794ee8f78ac8078ee975a10d3ee1f06e0d
|
data/lib/subservient/errors.rb
CHANGED
@@ -9,6 +9,13 @@ module Subservient
|
|
9
9
|
class MissingTaskError < JobError; end # Raised if task cannot be found
|
10
10
|
|
11
11
|
class TaskError < SubservientError; end # Never raised directly
|
12
|
-
class RetryJob < TaskError;
|
12
|
+
class RetryJob < TaskError; # Raised to retry a job
|
13
|
+
attr_accessible :max_retries
|
14
|
+
def initialize(max_retries=nil)
|
15
|
+
@max_retries = max_retries
|
16
|
+
end
|
17
|
+
end
|
13
18
|
class BuryJob < TaskError; end # Raised to bury a job
|
19
|
+
|
20
|
+
|
14
21
|
end
|
data/lib/subservient/job.rb
CHANGED
@@ -22,7 +22,22 @@ module Subservient
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def execute
|
25
|
+
@bs_job.delete
|
25
26
|
@task.execute_job
|
27
|
+
rescue RetryJob => e
|
28
|
+
if e.max_retries and e.max_retries < @bs_job.stats.retries
|
29
|
+
puts "#{e.inspect} - RELEASING JOB #{@job.bs_job.id}"
|
30
|
+
puts e.backtrace
|
31
|
+
@bs_job.release
|
32
|
+
else
|
33
|
+
puts "#{e.inspect} - BURYING JOB (EXCEEDED MAX RETRIES) #{@job.bs_job.id}"
|
34
|
+
puts e.backtrace
|
35
|
+
@bs_job.bury
|
36
|
+
end
|
37
|
+
rescue BuryJob => e
|
38
|
+
puts "#{e.inspect} - BURYING JOB #{@job.bs_job.id}"
|
39
|
+
puts e.backtrace
|
40
|
+
@bs_job.bury
|
26
41
|
end
|
27
42
|
|
28
43
|
end
|
data/lib/subservient/task.rb
CHANGED
@@ -5,22 +5,20 @@ module Subservient
|
|
5
5
|
attr_reader :job
|
6
6
|
def initialize job
|
7
7
|
@job = job
|
8
|
+
@input = @job.input
|
8
9
|
end
|
9
10
|
|
10
11
|
def execute_job
|
11
12
|
self.send(@job.task_method)
|
12
|
-
@job.bs_job.delete
|
13
13
|
rescue NoMethodError
|
14
14
|
raise MissingTaskError
|
15
|
+
rescue *@@retry_on => e
|
16
|
+
raise RetryJob.new @@max_retries
|
15
17
|
rescue RetryJob, *@@retry_on => e
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
rescue BuryJob, StandardError => e
|
21
|
-
puts "#{e.inspect} - BURYING JOB #{@job.bs_job.id}"
|
22
|
-
puts e.backtrace
|
23
|
-
@job.bs_job.bury
|
18
|
+
e.max_retries ||= @@max_retries
|
19
|
+
raise e
|
20
|
+
rescue StandardError => e
|
21
|
+
raise BuryJob
|
24
22
|
end
|
25
23
|
|
26
24
|
private
|
data/lib/subservient/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subservient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Robertson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: beaneater
|