eventq_rabbitmq 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6c7ba92fd9cfd728f552fd2ab582a5df7338df7
4
- data.tar.gz: 2b80bfa57c70c3a90f751ee28b0d6b5e540cdddc
3
+ metadata.gz: d6412b8fa487b4b66191c078e3a769ad4d7a71c2
4
+ data.tar.gz: fff5750679b68ccf6b331424316e0ee58b2fb93c
5
5
  SHA512:
6
- metadata.gz: b82fe11373109e312d84f369ef1b88a4c4cdc07004bb56b6068bee5149ec8eaa1a5066f0b23bc88f50c4f9de675b4f2b94f0330262a39fd7baab3df10932ac38
7
- data.tar.gz: 6b587c693822f8a0b655c4f959cb7a3350ea4e1d945dcf5d06e5c9fb2b6698c025c17b546537d5b3a8acc9e93263d62533b22639ee60f83575bcd01f03b55c15
6
+ metadata.gz: 29faa09ac8b549ddbb2d95b958d1053336c9a2d6889550b3673a06f393ccaf0de438745ff040e9d16a30d6e001ca3dbb13f64196d2eab34b827df18a90af6522
7
+ data.tar.gz: fa120e81de36afb83c9d836dfa37af049ae984fbebbc1b86abc936bc577818b852bb897644bfa1f3fe737934e6c08fcde0dc17727f821f73f34389735b728809
@@ -0,0 +1,7 @@
1
+ class DefaultQueue < Queue
2
+ def initialize
3
+ @name = 'Default'
4
+ @allow_retry = false
5
+ @max_retry_attempts = 1
6
+ end
7
+ end
@@ -2,15 +2,18 @@ require 'oj'
2
2
 
3
3
  class RabbitMqEventQClient
4
4
 
5
- def initialize
5
+ def initialize(options={})
6
6
  @client = RabbitMqQueueClient.new
7
7
  @queue_manager = RabbitMqQueueManager.new
8
8
  @event_raised_exchange = EventRaisedExchange.new
9
+ @subscription_manager = options[:subscription_manager] || RabbitMqSubscriptionManager.new
9
10
  end
10
11
 
11
12
  def raise(event_type, event)
12
13
  channel = @client.get_channel
13
- ex = @queue_manager.get_exchange(channel, @event_raised_exchange)
14
+ ex = queue_manager.get_exchange(channel, event_raised_exchange)
15
+
16
+ subscription_manager.subscribe(event_type, DefaultQueue.new)
14
17
 
15
18
  qm = QueueMessage.new
16
19
  qm.content = event
@@ -21,4 +24,7 @@ class RabbitMqEventQClient
21
24
  ex.publish(message, :routing_key => event_type)
22
25
  end
23
26
 
24
- end
27
+ private
28
+
29
+ attr_reader :subscription_manager, :queue_manager, :event_raised_exchange
30
+ end
@@ -1,20 +1,23 @@
1
1
  class RabbitMqQueueWorker
2
2
 
3
- @threads = []
4
- @is_running = false
3
+ attr_accessor :is_running
5
4
 
6
- @retry_exceeded_block = nil
5
+ def initialize
6
+ @threads = []
7
+ @is_running = false
8
+
9
+ @retry_exceeded_block = nil
10
+ end
7
11
 
8
- def start(queue, options = {})
12
+ def start(queue, options = {}, &block)
9
13
 
10
14
  configure(queue, options)
11
15
 
12
16
  puts '[QUEUE_WORKER] Listening for messages.'
13
17
 
14
- if @is_running
15
- raise 'Worker is already running.'
16
- end
18
+ raise 'Worker is already running.' if running?
17
19
 
20
+ @is_running = true
18
21
  @threads = []
19
22
 
20
23
  #loop through each thread count
@@ -27,6 +30,11 @@ class RabbitMqQueueWorker
27
30
  #begin the queue loop for this thread
28
31
  while true do
29
32
 
33
+ #check if the worker is still allowed to run and break out of thread loop if not
34
+ if !@is_running
35
+ break
36
+ end
37
+
30
38
  channel = client.get_channel
31
39
 
32
40
  #get the queue
@@ -49,7 +57,8 @@ class RabbitMqQueueWorker
49
57
 
50
58
  #begin worker block for queue message
51
59
  begin
52
- yield message.content, message.type, message.retry_attempts
60
+ block.call(message.content, message.type, message.retry_attempts)
61
+
53
62
  #accept the message as processed
54
63
  channel.acknowledge(delivery_info.delivery_tag, false)
55
64
  puts '[QUEUE_WORKER] Message acknowledged.'
@@ -111,17 +120,18 @@ class RabbitMqQueueWorker
111
120
  end
112
121
 
113
122
  def stop
114
- @threads.each do |t|
115
- t.exit
116
- end
117
-
118
123
  @is_running = false
124
+ @threads.each { |thr| thr.join }
119
125
  end
120
126
 
121
127
  def on_retry_exceeded(&block)
122
128
  @retry_exceeded_block = block
123
129
  end
124
130
 
131
+ def running?
132
+ @is_running
133
+ end
134
+
125
135
  private
126
136
 
127
137
  def configure(queue, options = {})
@@ -142,4 +152,4 @@ class RabbitMqQueueWorker
142
152
 
143
153
  end
144
154
 
145
- end
155
+ end
@@ -1,3 +1,3 @@
1
1
  module EventqRabbitmq
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -6,4 +6,4 @@ require_relative '../lib/eventq_rabbitmq/rabbitmq_queue_manager'
6
6
  require_relative '../lib/eventq_rabbitmq/rabbitmq_queue_worker'
7
7
  require_relative '../lib/eventq_rabbitmq/rabbitmq_subscription_manager'
8
8
  require_relative '../lib/eventq_rabbitmq/rabbitmq_eventq_client'
9
-
9
+ require_relative '../lib/eventq_rabbitmq/default_queue'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventq_rabbitmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaughanbrittonsage
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-12 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -118,6 +118,7 @@ files:
118
118
  - bin/console
119
119
  - bin/setup
120
120
  - lib/eventq_rabbitmq.rb
121
+ - lib/eventq_rabbitmq/default_queue.rb
121
122
  - lib/eventq_rabbitmq/rabbitmq_eventq_client.rb
122
123
  - lib/eventq_rabbitmq/rabbitmq_queue_client.rb
123
124
  - lib/eventq_rabbitmq/rabbitmq_queue_manager.rb