rservicebus 0.1.56 → 0.1.57

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