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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e6dc9fb826381c68f4d1f9f7f04f40e0dfb3a46
4
- data.tar.gz: ced144a849ef9933b5b760c39f68c8c6d357ea48
3
+ metadata.gz: 0534f1615f5921685feaa774888040ee1e390b1e
4
+ data.tar.gz: 34abe0e7a3e55f57652801b9decb2a0c4793d4e8
5
5
  SHA512:
6
- metadata.gz: c85bf058fd785ad5ebf06c0001d7409910931478787ff35f2cceaf857a271ad9470bddfd4c7a1e1c4df55d8cd50295bb55756c7664caedbf7f7afea228a02a71
7
- data.tar.gz: 650f9a4bebac9ace6a6e75fb55cfb06561948d8dab7b55bf32a30997638e7f512946bf32614842f9a98c3270e983ca0c75dba398dead29d01f9218c363204ae2
6
+ metadata.gz: c0ffeb6ea489694dbcde6d020ea94fb0a31cb407f4bff0e75223ebaaab3b821e56a187816395d3743d5e27ac7a3eb9398b62a08212981d05a79ad610281717ce
7
+ data.tar.gz: 090a42d423687f5994b4f12b93651b7f2ca66670656813946908f4e992d0bf3e7e191858385ba467e5eba6be313381794ee8f78ac8078ee975a10d3ee1f06e0d
@@ -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; end # Raised to retry a job
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
@@ -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
@@ -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
- raise BuryJob if @job.bs_job.stats.releases > @@max_retries
17
- puts "#{e.inspect} - RELEASING JOB #{@job.bs_job.id}"
18
- puts e.backtrace
19
- @job.bs_job.release
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
@@ -1,3 +1,3 @@
1
1
  module Subservient
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
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.1
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-04 00:00:00.000000000 Z
11
+ date: 2014-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beaneater