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 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