subservient 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|