rabbit_jobs 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,42 +20,48 @@ module RabbitJobs
20
20
  raise ArgumentError unless routing_key && (routing_key.is_a?(Symbol) || routing_key.is_a?(String))
21
21
 
22
22
  begin
23
- exchange = bunny.exchange(RJ.config[:exchange], RJ.config[:exchange_params])
24
- queue = bunny.queue(RJ.config.queue_name(routing_key), RJ.config[:queues][routing_key.to_s])
25
- queue.bind(exchange)
26
-
27
- payload = {
28
- 'class' => klass.to_s,
29
- 'opts' => {'created_at' => Time.now.to_i},
30
- 'params' => params
31
- }.to_json
32
-
33
- exchange.publish(payload, Configuration::DEFAULT_MESSAGE_PARAMS.merge({key: routing_key.to_s}))
34
- bunny.stop
23
+ with_bunny do |bunny|
24
+ exchange = bunny.exchange(RJ.config[:exchange], RJ.config[:exchange_params])
25
+ queue = bunny.queue(RJ.config.queue_name(routing_key), RJ.config[:queues][routing_key.to_s])
26
+ queue.bind(exchange)
27
+
28
+ payload = {
29
+ 'class' => klass.to_s,
30
+ 'opts' => {'created_at' => Time.now.to_i},
31
+ 'params' => params
32
+ }.to_json
33
+
34
+ exchange.publish(payload, Configuration::DEFAULT_MESSAGE_PARAMS.merge({key: routing_key.to_s}))
35
+ end
35
36
  rescue
36
37
  RJ.logger.warn $!.inspect
37
38
  RJ.logger.warn $!.backtrace.join("\n")
38
39
  end
40
+
41
+ true
39
42
  end
40
43
 
41
44
  def purge_queue(*routing_keys)
42
45
  raise ArgumentError unless routing_keys && routing_keys.count > 0
43
46
 
44
47
  messages_count = 0
45
- routing_keys.each do |routing_key|
46
- queue = bunny.queue(RJ.config.queue_name(routing_key), RJ.config[:queues][routing_key.to_s])
47
- messages_count += queue.status[:message_count]
48
- queue.purge
48
+ with_bunny do |bunny|
49
+ routing_keys.each do |routing_key|
50
+ queue = bunny.queue(RJ.config.queue_name(routing_key), RJ.config[:queues][routing_key.to_s])
51
+ messages_count += queue.status[:message_count]
52
+ queue.purge
53
+ end
49
54
  end
50
- bunny.stop
51
55
  return messages_count
52
56
  end
53
57
 
54
58
  private
55
- def self.bunny
56
- @bunny = Bunny.new(host: RJ.config.host, logging: true)
57
- @bunny.start unless @bunny.status == :connected
58
- @bunny
59
+ def self.with_bunny(&block)
60
+ raise ArgumentError unless block
61
+
62
+ Bunny.run(host: RJ.config.host, logging: true) do |bunny|
63
+ block.call(bunny)
64
+ end
59
65
  end
60
66
  end
61
67
  end
@@ -1,3 +1,3 @@
1
1
  module RabbitJobs
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
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.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: amqp
16
- requirement: &70172197056640 !ruby/object:Gem::Requirement
16
+ requirement: &70249915695980 !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: *70172197056640
24
+ version_requirements: *70249915695980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bunny
27
- requirement: &70172197056140 !ruby/object:Gem::Requirement
27
+ requirement: &70249915695480 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.7'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70172197056140
35
+ version_requirements: *70249915695480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70172197055760 !ruby/object:Gem::Requirement
38
+ requirement: &70249915695100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70172197055760
46
+ version_requirements: *70249915695100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rufus-scheduler
49
- requirement: &70172197055220 !ruby/object:Gem::Requirement
49
+ requirement: &70249915694560 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '2.0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70172197055220
57
+ version_requirements: *70249915694560
58
58
  description: Background jobs on RabbitMQ
59
59
  email:
60
60
  - lazureykis@gmail.com