rservicebus 0.1.56 → 0.1.57

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,6 +13,7 @@ module RServiceBus
13
13
  #opportunity for smarts here. Could tar zip if it was a directory of files
14
14
 
15
15
  # Net::SCP.upload!(@uri.host, @uri.user, source, @uri.path, :recursive )
16
+ RServiceBus.log "Host: #{@uri.host}, User: #{@uri.user}, Source: #{source}, Destination: #{@uri.path}", true
16
17
  Net::SSH.start( @uri.host, @uri.user ) do|ssh|
17
18
  ssh.scp.upload!( source, @uri.path, :recursive => true )
18
19
  end
@@ -50,7 +50,7 @@ module RServiceBus
50
50
 
51
51
  return self
52
52
  end
53
-
53
+
54
54
  def loadHostSection()
55
55
  @appName = self.getValue( "APPNAME", "RServiceBus" )
56
56
  @errorQueueName = self.getValue( "ERROR_QUEUE_NAME", "error" )
@@ -29,6 +29,10 @@ module RServiceBus
29
29
  require "rservicebus/MQ/Redis"
30
30
  mq = MQ_Redis.new( uri )
31
31
 
32
+ when "rabbitmq"
33
+ require "rservicebus/MQ/RabbitMq"
34
+ mq = MQ_RabbitMq.new( uri )
35
+
32
36
  else
33
37
  abort("Scheme, #{uri.scheme}, not recognised when configuring mq, #{string}");
34
38
  end
@@ -0,0 +1,76 @@
1
+ module RServiceBus
2
+
3
+ require "bunny"
4
+ require "rservicebus/MQ"
5
+
6
+ # Beanstalk client implementation.
7
+ #
8
+ class MQ_RabbitMq<MQ
9
+
10
+ # Connect to the broker
11
+ #
12
+ def connect( host, port )
13
+ port ||= 11300
14
+ string = "#{host}:#{port}"
15
+
16
+ begin
17
+
18
+ @conn = Bunny.new
19
+ @conn.start
20
+
21
+ @ch = @conn.create_channel
22
+ @x = @ch.default_exchange
23
+
24
+ rescue Exception => e
25
+ puts "Error connecting to Beanstalk"
26
+ puts "Host string, #{string}"
27
+ if e.message == "Beanstalk::NotConnected" then
28
+ puts "***Most likely, beanstalk is not running. Start beanstalk, and try running this again."
29
+ puts "***If you still get this error, check beanstalk is running at, #{string}"
30
+ else
31
+ puts e.message
32
+ puts e.backtrace
33
+ end
34
+ abort()
35
+ end
36
+ end
37
+
38
+ # Connect to the queue
39
+ #
40
+ def subscribe( queuename )
41
+ @q = @ch.queue( queuename, :durable => true, :auto_delete => false)
42
+ end
43
+
44
+ # Get next msg from queue
45
+ def pop
46
+ begin
47
+ @delivery_info, @properties, @payload = @q.pop(:ack => true)
48
+
49
+ if @delivery_info.nil? then
50
+ sleep @timeout
51
+ raise NoMsgToProcess.new
52
+ end
53
+
54
+ end
55
+ return @payload
56
+ end
57
+
58
+ def returnToQueue
59
+ @ch.reject( @delivery_info.delivery_tag, true )
60
+ end
61
+
62
+ # "Commit" queue
63
+ def ack
64
+ @ch.ack( @delivery_info.delivery_tag )
65
+ @delivery_info = nil
66
+ @properties = nil
67
+ @payload = nil
68
+ end
69
+
70
+ # At least called in the Host rescue block, to ensure all network links are healthy
71
+ def send( queueName, msg )
72
+ @x.publish(msg, :routing_key => queueName)
73
+ end
74
+
75
+ end
76
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rservicebus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.56
4
+ version: 0.1.57
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-19 00:00:00.000000000 Z
12
+ date: 2013-11-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: uuidtools
16
- requirement: &70366139760940 !ruby/object:Gem::Requirement
16
+ requirement: &70227782467900 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70366139760940
24
+ version_requirements: *70227782467900
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70366139732260 !ruby/object:Gem::Requirement
27
+ requirement: &70227782467220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70366139732260
35
+ version_requirements: *70227782467220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: beanstalk-client
38
- requirement: &70366139730160 !ruby/object:Gem::Requirement
38
+ requirement: &70227782466420 !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: *70366139730160
46
+ version_requirements: *70227782466420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: fluiddb
49
- requirement: &70366139667660 !ruby/object:Gem::Requirement
49
+ requirement: &70227782480800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70366139667660
57
+ version_requirements: *70227782480800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: parse-cron
60
- requirement: &70366139654920 !ruby/object:Gem::Requirement
60
+ requirement: &70227782480020 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70366139654920
68
+ version_requirements: *70227782480020
69
69
  description: A Ruby interpretation of NServiceBus
70
70
  email: guy@guyirvine.com
71
71
  executables:
@@ -118,6 +118,7 @@ files:
118
118
  - lib/rservicebus/Monitor/XmlDir.rb
119
119
  - lib/rservicebus/Monitor.rb
120
120
  - lib/rservicebus/MQ/Beanstalk.rb
121
+ - lib/rservicebus/MQ/RabbitMq.rb
121
122
  - lib/rservicebus/MQ/Redis.rb
122
123
  - lib/rservicebus/MQ.rb
123
124
  - lib/rservicebus/Saga.rb