simple_job 0.0.0 → 0.0.1

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.
data/CHANGELOG.rdoc CHANGED
@@ -1,5 +1,9 @@
1
1
  = Simple Job
2
2
 
3
+ == Version 0.0.1
4
+ * Properly handling exceptions that occur during job execution
5
+ ** Message will now be re-enqueued, subject to visibility timeout
6
+
3
7
  == Version 0.0.0
4
8
  * Supports declaring queues, easy declaration of job definitions, and enqueuing/polling
5
9
  * Contains a queue implementation backed by Amazon SQS
@@ -60,19 +60,25 @@ class SQSJobQueue < JobQueue
60
60
  definition.execute
61
61
  end
62
62
 
63
- sqs_queue.poll(options) do |message|
63
+ loop do
64
+ last_message = nil
64
65
  begin
65
- raw_message = JSON.parse(message.body)
66
- definition_class = JobDefinition.job_definition_class_for(raw_message['type'], raw_message['version'])
67
- raise('no definition found') if !definition_class
68
- definition = definition_class.new.from_json(message.body)
69
- message_handler.call(definition, message)
66
+ sqs_queue.poll(options) do |message|
67
+ last_message = message
68
+ raw_message = JSON.parse(message.body)
69
+ definition_class = JobDefinition.job_definition_class_for(raw_message['type'], raw_message['version'])
70
+ raise('no definition found') if !definition_class
71
+ definition = definition_class.new.from_json(message.body)
72
+ message_handler.call(definition, message)
73
+ end
74
+ rescue SignalException => e
75
+ raise e
70
76
  rescue Exception => e
71
77
  if options[:raise_exceptions]
72
78
  raise e
73
79
  else
74
80
  JobQueue.config[:logger].error("unable to process message: #{e.message}")
75
- JobQueue.config[:logger].error("message body: #{message.body}")
81
+ JobQueue.config[:logger].error("message body: #{last_message && last_message.body}")
76
82
  JobQueue.config[:logger].error(e.backtrace.join("\n "))
77
83
  end
78
84
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleJob
2
- VERSION = '0.0.0'
2
+ VERSION = '0.0.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-10 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
16
- requirement: &70245578980360 !ruby/object:Gem::Requirement
16
+ requirement: &70164892735640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70245578980360
24
+ version_requirements: *70164892735640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70245578978120 !ruby/object:Gem::Requirement
27
+ requirement: &70164892732400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70245578978120
35
+ version_requirements: *70164892732400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: aws-sdk
38
- requirement: &70245578976320 !ruby/object:Gem::Requirement
38
+ requirement: &70164892724600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '1.2'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70245578976320
46
+ version_requirements: *70164892724600
47
47
  description: Contains libraries that support defining, queueing, and executing jobs.
48
48
  email: daws23@gmail.com
49
49
  executables: []
@@ -77,7 +77,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
77
  version: '0'
78
78
  segments:
79
79
  - 0
80
- hash: -2274642139086505235
80
+ hash: -949318123203776459
81
81
  required_rubygems_version: !ruby/object:Gem::Requirement
82
82
  none: false
83
83
  requirements: