rabbit_jobs 0.1.3 → 0.1.4

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