rabbit_jobs 0.4.5 → 0.4.6

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.
@@ -1,5 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  module RabbitJobs
4
- VERSION = "0.4.5"
4
+ VERSION = "0.4.6"
5
5
  end
@@ -4,6 +4,27 @@ module RabbitJobs
4
4
  class Worker
5
5
  attr_accessor :pidfile, :background, :process_name, :worker_pid
6
6
 
7
+ def process_message(metadata, payload)
8
+ job = RJ::Job.parse(payload)
9
+
10
+ if job.is_a?(Symbol)
11
+ # case @job
12
+ # when :not_found
13
+ # when :parsing_error
14
+ # when :error
15
+ # end
16
+ else
17
+ if job.expired?
18
+ RJ.logger.warn "Job expired: #{job.to_ruby_string}"
19
+ false
20
+ else
21
+ job.run_perform
22
+ end
23
+ end
24
+
25
+ true
26
+ end
27
+
7
28
  # Workers should be initialized with an array of string queue
8
29
  # names. The order is important: a Worker will check the first
9
30
  # queue given for a job. If none is found, it will check the
@@ -54,31 +75,17 @@ module RabbitJobs
54
75
  queues.each do |routing_key|
55
76
  AMQP.channel.prefetch(1)
56
77
  AMQP.channel.queue(RJ.config.queue_name(routing_key), RJ.config[:queues][routing_key]) { |queue, declare_ok|
57
- RJ.logger.info "Subscribed to #{RJ.config.queue_name(routing_key)}(#{declare_ok.to_i + 1})"
58
-
59
78
  explicit_ack = !!RJ.config[:queues][routing_key][:ack]
60
79
 
80
+ RJ.logger.info "Subscribing to #{RJ.config.queue_name(routing_key)}"
61
81
  queue.subscribe(ack: explicit_ack) do |metadata, payload|
62
- @job = RJ::Job.parse(payload)
63
-
64
- if @job.is_a?(Symbol)
65
- # case @job
66
- # when :not_found
67
- # when :parsing_error
68
- # when :error
69
- # end
70
- metadata.ack if explicit_ack
71
- else
72
- if @job.expired?
73
- RJ.logger.warn "Job expired: #{@job.to_ruby_string}"
74
- else
75
- @job.run_perform
76
- processed_count += 1
77
- end
78
-
79
- metadata.ack if explicit_ack
82
+ begin
83
+ processed_count += 1 if process_message(metadata, payload)
84
+ rescue
85
+ RJ.logger.warn "process_message failed: #{{metadata: metadata, payload: payload}.inspect}"
80
86
  end
81
87
 
88
+ metadata.ack if explicit_ack
82
89
  check_shutdown.call
83
90
  end
84
91
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbit_jobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-04 00:00:00.000000000 Z
12
+ date: 2013-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: amqp
16
- requirement: &10959520 !ruby/object:Gem::Requirement
16
+ requirement: &14548120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.9'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10959520
24
+ version_requirements: *14548120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &10958660 !ruby/object:Gem::Requirement
27
+ requirement: &14546840 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *10958660
35
+ version_requirements: *14546840
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rufus-scheduler
38
- requirement: &10957860 !ruby/object:Gem::Requirement
38
+ requirement: &14544680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '2.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *10957860
46
+ version_requirements: *14544680
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rails
49
- requirement: &10957020 !ruby/object:Gem::Requirement
49
+ requirement: &14543340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '3.0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *10957020
57
+ version_requirements: *14543340
58
58
  description: Background jobs on RabbitMQ
59
59
  email:
60
60
  - lazureykis@gmail.com
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  segments:
117
117
  - 0
118
- hash: 1163928231498999905
118
+ hash: 4141975649381852008
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  none: false
121
121
  requirements:
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  segments:
126
126
  - 0
127
- hash: 1163928231498999905
127
+ hash: 4141975649381852008
128
128
  requirements: []
129
129
  rubyforge_project:
130
130
  rubygems_version: 1.8.11