adaptation 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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