adaptation 0.1.2 → 0.1.3

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.
Files changed (3) hide show
  1. data/CHANGELOG +2 -0
  2. data/lib/adaptation/mom.rb +25 -15
  3. metadata +2 -2
data/CHANGELOG CHANGED
@@ -37,3 +37,5 @@
37
37
  exist return an Adaptation::Adaptor in base.rb
38
38
  - embedded mom publish method changed. Subscribrers publish, and a separated mom loop
39
39
  will send messages to other subscribers.
40
+ * 0.1.3
41
+ - solved loop that comsuned lots of cpu in mom command
@@ -28,30 +28,40 @@ module Adaptation
28
28
  puts "#{message}"
29
29
  puts "-----------------------------------"
30
30
  @messages << [message, topic]
31
+ @sleeper.run if @sleeper.stop?
31
32
  end
32
33
 
33
34
  def start
34
35
  DRb.start_service(@mom_uri, self)
35
36
  puts "MOM started. Listening at #{@mom_uri}"
36
-
37
- loop do
38
- unless @messages.empty?
39
- @messages.each do |message|
40
- get_subscribers.each do |uri|
41
- begin
42
- puts "Calling #{uri}"
43
- DRb.start_service
44
- oapdaemon = DRbObject.new(nil, uri)
45
- oapdaemon.process message[0], message[1]
46
- rescue
47
- puts "Couldn't send message to subscriber: #{uri}"
37
+
38
+ @sleeper = Thread.new{
39
+ loop do
40
+
41
+ # deliver all messages
42
+ while !@messages.empty?
43
+ @messages.each do |message|
44
+ get_subscribers.each do |uri|
45
+ begin
46
+ puts "Calling #{uri}"
47
+ DRb.start_service
48
+ oapdaemon = DRbObject.new(nil, uri)
49
+ oapdaemon.process message[0], message[1]
50
+ rescue
51
+ puts "Couldn't send message to subscriber: #{uri}"
52
+ end
48
53
  end
54
+ @messages.delete message
49
55
  end
50
- @messages.delete message
51
56
  end
52
- end
53
- end
54
57
 
58
+ # go to sleep
59
+ Thread.stop
60
+
61
+ end
62
+ }
63
+
64
+ @sleeper.join
55
65
  DRb.thread.join # Don't exit just yet
56
66
  end
57
67
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adaptation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xavi Vila Morell
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-14 00:00:00 +01:00
12
+ date: 2009-01-23 00:00:00 +01:00
13
13
  default_executable: adaptation
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency