rservicebus 0.1.74 → 0.1.75
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/ReturnMessagesToSourceQueue +18 -18
- data/bin/SendEmptyMessage +3 -3
- data/bin/rsb_ctl +10 -10
- data/bin/rservicebus-create +4 -4
- data/bin/rservicebus-init +7 -6
- data/lib/rservicebus.rb +49 -49
- data/lib/rservicebus/Agent.rb +4 -4
- data/lib/rservicebus/AppResource.rb +4 -4
- data/lib/rservicebus/AppResource/Dir.rb +3 -3
- data/lib/rservicebus/AppResource/FluidDb.rb +1 -1
- data/lib/rservicebus/AppResource/FluidDbFirebird.rb +1 -1
- data/lib/rservicebus/AppResource/FluidDbMysql.rb +4 -4
- data/lib/rservicebus/AppResource/FluidDbMysql2.rb +4 -4
- data/lib/rservicebus/AppResource/FluidDbPgsql.rb +4 -4
- data/lib/rservicebus/AppResource/FluidDbTinyTds.rb +1 -1
- data/lib/rservicebus/AppResource/Mysql.rb +2 -2
- data/lib/rservicebus/AppResource/Redis.rb +1 -1
- data/lib/rservicebus/AppResource/ScpDownload.rb +51 -0
- data/lib/rservicebus/AppResource/ScpUpload.rb +3 -2
- data/lib/rservicebus/AppResource/Smb.rb +3 -3
- data/lib/rservicebus/AppResource/SmbDir.rb +2 -2
- data/lib/rservicebus/AppResource/SmbFile.rb +1 -1
- data/lib/rservicebus/Audit.rb +9 -9
- data/lib/rservicebus/CircuitBreaker.rb +4 -4
- data/lib/rservicebus/Config.rb +46 -46
- data/lib/rservicebus/ConfigureAppResource.rb +64 -63
- data/lib/rservicebus/ConfigureMonitor.rb +12 -12
- data/lib/rservicebus/ConfigureSubscriptionStorage.rb +5 -5
- data/lib/rservicebus/CronManager.rb +8 -8
- data/lib/rservicebus/EndpointMapping.rb +11 -11
- data/lib/rservicebus/HandlerLoader.rb +33 -33
- data/lib/rservicebus/HandlerManager.rb +2 -2
- data/lib/rservicebus/Host.rb +58 -58
- data/lib/rservicebus/MQ.rb +21 -21
- data/lib/rservicebus/MQ/Beanstalk.rb +9 -9
- data/lib/rservicebus/MQ/RabbitMq.rb +5 -5
- data/lib/rservicebus/MQ/Redis.rb +3 -3
- data/lib/rservicebus/Message.rb +11 -11
- data/lib/rservicebus/Monitor.rb +5 -5
- data/lib/rservicebus/Monitor/CsvDir.rb +5 -5
- data/lib/rservicebus/Monitor/CsvPerLine.rb +5 -5
- data/lib/rservicebus/Monitor/Dir.rb +34 -34
- data/lib/rservicebus/Monitor/DirNotifier.rb +15 -15
- data/lib/rservicebus/ResourceManager.rb +2 -2
- data/lib/rservicebus/Saga/Manager.rb +18 -18
- data/lib/rservicebus/SagaLoader.rb +19 -19
- data/lib/rservicebus/SagaStorage.rb +4 -4
- data/lib/rservicebus/SagaStorage/Dir.rb +12 -12
- data/lib/rservicebus/SendAtManager.rb +4 -4
- data/lib/rservicebus/SendAtStorage.rb +5 -5
- data/lib/rservicebus/SendAtStorage/File.rb +3 -3
- data/lib/rservicebus/StateManager.rb +2 -2
- data/lib/rservicebus/StateStorage.rb +2 -2
- data/lib/rservicebus/StateStorage/Dir.rb +11 -11
- data/lib/rservicebus/StateStorage/InMemory.rb +1 -1
- data/lib/rservicebus/StatisticManager.rb +2 -2
- data/lib/rservicebus/SubscriptionManager.rb +2 -2
- data/lib/rservicebus/SubscriptionStorage.rb +4 -4
- data/lib/rservicebus/SubscriptionStorage/File.rb +3 -3
- data/lib/rservicebus/SubscriptionStorage/Redis.rb +10 -10
- data/lib/rservicebus/Test.rb +2 -2
- data/lib/rservicebus/Test/Bus.rb +2 -2
- data/lib/rservicebus/Test/Redis.rb +1 -1
- data/lib/rservicebus/Transporter.rb +15 -15
- data/lib/rservicebus/helper_functions.rb +15 -15
- metadata +13 -12
@@ -1,11 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require 'yaml'
|
4
|
+
require 'beanstalk-client'
|
5
|
+
require 'rservicebus'
|
6
6
|
|
7
7
|
def returnMsg( beanstalk, job, request_nbr )
|
8
|
-
firstMatch =
|
8
|
+
firstMatch = 'ruby/object:'
|
9
9
|
|
10
10
|
payload = job.body
|
11
11
|
|
@@ -17,16 +17,16 @@ def returnMsg( beanstalk, job, request_nbr )
|
|
17
17
|
msg = YAML::load(payload)
|
18
18
|
if msg.lastErrorString.nil? then
|
19
19
|
puts "*** Requested msg, #{request_nbr}, does not have a sourceQueue to which it can be returned"
|
20
|
-
puts
|
21
|
-
puts
|
22
|
-
puts
|
23
|
-
puts
|
20
|
+
puts '*** Only errored msgs can be Returned'
|
21
|
+
puts '*** Generally, msgs would not be manually moved between queues'
|
22
|
+
puts '*** If you do need to, try'
|
23
|
+
puts '*** beanstalk-admin-dump <source queue name> | beanstalk-admin-load <destination queue name>'
|
24
24
|
|
25
25
|
job.release
|
26
26
|
return
|
27
27
|
end
|
28
28
|
queueName = msg.lastErrorSourceQueue
|
29
|
-
puts
|
29
|
+
puts '#' + "#{request_nbr.to_s}: #{msgName} to #{queueName}"
|
30
30
|
|
31
31
|
beanstalk.use( queueName )
|
32
32
|
beanstalk.put( payload )
|
@@ -37,14 +37,14 @@ end
|
|
37
37
|
|
38
38
|
index=nil
|
39
39
|
if ARGV.length == 0 then
|
40
|
-
queueName =
|
40
|
+
queueName = 'error'
|
41
41
|
elsif ARGV.length == 1 then
|
42
42
|
queueName = ARGV[0]
|
43
43
|
elsif ARGV.length == 2 then
|
44
44
|
queueName = ARGV[0]
|
45
45
|
index = ARGV[1].to_i
|
46
46
|
else
|
47
|
-
abort(
|
47
|
+
abort('Usage: ReturnMessagesToSourceQueue [queue name] [index]')
|
48
48
|
end
|
49
49
|
|
50
50
|
begin
|
@@ -52,12 +52,12 @@ begin
|
|
52
52
|
beanstalk = Beanstalk::Pool.new([host])
|
53
53
|
|
54
54
|
tubes = beanstalk.list_tubes[host]
|
55
|
-
|
56
|
-
|
55
|
+
unless tubes.include?(queueName) then
|
56
|
+
abort("Nothing waiting on the Beanstalk queue, #{queueName}")
|
57
57
|
end
|
58
58
|
|
59
59
|
tubeStats = beanstalk.stats_tube(queueName)
|
60
|
-
number_of_messages = tubeStats[
|
60
|
+
number_of_messages = tubeStats['current-jobs-ready']
|
61
61
|
if index.nil? then
|
62
62
|
puts
|
63
63
|
puts "Attempting to return #{number_of_messages} to their source queue"
|
@@ -71,7 +71,7 @@ begin
|
|
71
71
|
returnMsg( beanstalk, job, request_nbr )
|
72
72
|
end
|
73
73
|
rescue Exception => e
|
74
|
-
if e.message ==
|
74
|
+
if e.message == 'TIMED_OUT' then
|
75
75
|
else
|
76
76
|
raise
|
77
77
|
end
|
@@ -79,7 +79,7 @@ begin
|
|
79
79
|
else
|
80
80
|
if index > number_of_messages then
|
81
81
|
puts "*** Requested msg, #{index}, is greater than the number of msgs in the queue, #{number_of_messages}"
|
82
|
-
puts
|
82
|
+
puts '*** Try a smaller index, or remove the index number to return all msgs'
|
83
83
|
abort();
|
84
84
|
end
|
85
85
|
|
@@ -102,7 +102,7 @@ begin
|
|
102
102
|
end
|
103
103
|
|
104
104
|
rescue Exception => e
|
105
|
-
if e.message ==
|
105
|
+
if e.message == 'TIMED_OUT' then
|
106
106
|
else
|
107
107
|
raise
|
108
108
|
end
|
@@ -110,5 +110,5 @@ begin
|
|
110
110
|
end
|
111
111
|
|
112
112
|
rescue Beanstalk::NotConnected=>e
|
113
|
-
puts
|
113
|
+
puts 'Beanstalk not running'
|
114
114
|
end
|
data/bin/SendEmptyMessage
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'rservicebus'
|
4
|
+
require 'rservicebus/Agent'
|
5
5
|
|
6
6
|
|
7
7
|
abort( "Usage: #{File.basename($0)} <Msg Name> <Queue Name> [Response Queue Name] [Beanstalk Host]" ) unless ARGV.length >=2 && ARGV.length <=4
|
8
8
|
msg_name = ARGV[0]
|
9
9
|
queue_name = ARGV[1]
|
10
10
|
response_queue_name = "#{queue_name}Response" if ARGV.length >= 3
|
11
|
-
beanstalkHost =
|
11
|
+
beanstalkHost = 'beanstalk://localhost' if ARGV.length <= 4
|
12
12
|
|
13
13
|
agent = RServiceBus::Agent.new.getAgent( URI.parse( beanstalkHost) )
|
14
14
|
msg = RServiceBus.createAnonymousClass( msg_name )
|
data/bin/rsb_ctl
CHANGED
@@ -5,33 +5,33 @@
|
|
5
5
|
#
|
6
6
|
|
7
7
|
require 'rubygems'
|
8
|
-
require
|
9
|
-
require
|
8
|
+
require 'rservicebus'
|
9
|
+
require 'rservicebus/Agent'
|
10
10
|
|
11
11
|
|
12
12
|
|
13
13
|
if ARGV.length == 3 then
|
14
14
|
queue_name = ARGV[0]
|
15
15
|
switch_name = ARGV[1].upcase
|
16
|
-
switch_state = ARGV[2].upcase ==
|
16
|
+
switch_state = ARGV[2].upcase == 'TRUE' || ARGV[2].upcase == 'ON'
|
17
17
|
else
|
18
|
-
puts
|
19
|
-
puts
|
20
|
-
puts
|
18
|
+
puts 'Usage: rsb_ctl <queue name> <switch> <switch state>'
|
19
|
+
puts 'Valid switchs: Stats, Verbose'
|
20
|
+
puts 'Valid switch states: On, Off'
|
21
21
|
abort()
|
22
22
|
end
|
23
23
|
|
24
24
|
|
25
|
-
agent = RServiceBus::Agent.new.getAgent( URI.parse(
|
25
|
+
agent = RServiceBus::Agent.new.getAgent( URI.parse('beanstalk://localhost') )
|
26
26
|
obj = nil
|
27
27
|
case switch_name
|
28
|
-
when switch_name =
|
28
|
+
when switch_name = 'STATS'
|
29
29
|
obj = switch_state == true ? RServiceBus::Message_StatisticOutputOn.new : RServiceBus::Message_StatisticOutputOff.new
|
30
|
-
when switch_name =
|
30
|
+
when switch_name = 'VERBOSE'
|
31
31
|
obj = switch_state == true ? RServiceBus::Message_VerboseOutputOn.new : RServiceBus::Message_VerboseOutputOff.new
|
32
32
|
else
|
33
33
|
puts "Switch name, #{ARGV[0]}, not recognized"
|
34
|
-
puts
|
34
|
+
puts 'Valid switchs: Stats, Verbose'
|
35
35
|
abort()
|
36
36
|
end
|
37
37
|
|
data/bin/rservicebus-create
CHANGED
@@ -4,11 +4,11 @@
|
|
4
4
|
# Contract
|
5
5
|
def contract( name )
|
6
6
|
|
7
|
-
content =
|
7
|
+
content = '
|
8
8
|
class First
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
'
|
12
12
|
|
13
13
|
File.write( "#{name}/Contract.rb", content )
|
14
14
|
|
@@ -52,7 +52,7 @@ end
|
|
52
52
|
# MessageHandler
|
53
53
|
def messagehandler( name )
|
54
54
|
|
55
|
-
content =
|
55
|
+
content = '
|
56
56
|
class MessageHandler_First
|
57
57
|
|
58
58
|
def Handle( msg )
|
@@ -61,7 +61,7 @@ class MessageHandler_First
|
|
61
61
|
|
62
62
|
end
|
63
63
|
|
64
|
-
|
64
|
+
'
|
65
65
|
|
66
66
|
Dir.mkdir( "#{name}/MessageHandler" )
|
67
67
|
File.write( "#{name}/MessageHandler/First.rb", content )
|
data/bin/rservicebus-init
CHANGED
@@ -89,13 +89,14 @@ END_DATA
|
|
89
89
|
class Init
|
90
90
|
|
91
91
|
def Run
|
92
|
-
IO.write(
|
93
|
-
IO.write(
|
94
|
-
IO.write(
|
95
|
-
IO.write(
|
92
|
+
IO.write( 'README.md', ContentReadMe.string );
|
93
|
+
IO.write( 'Client.rb', ContentClient.string );
|
94
|
+
IO.write( 'Contract.rb', ContentContract.string );
|
95
|
+
IO.write( 'run', ContentRun.string );
|
96
96
|
|
97
|
-
Dir.mkdir(
|
98
|
-
|
97
|
+
Dir.mkdir('./MessageHandler') unless Dir.exists? './MessageHandler'
|
98
|
+
;
|
99
|
+
IO.write( 'MessageHandler/HelloWorld.rb', ContentMessageHandler.string );
|
99
100
|
end
|
100
101
|
|
101
102
|
end
|
data/lib/rservicebus.rb
CHANGED
@@ -4,55 +4,55 @@
|
|
4
4
|
#Don't buffer stdout
|
5
5
|
$stdout.sync = true
|
6
6
|
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
20
|
-
require
|
21
|
-
require
|
22
|
-
require
|
23
|
-
require
|
24
|
-
require
|
25
|
-
|
26
|
-
require
|
27
|
-
require
|
28
|
-
require
|
29
|
-
require
|
30
|
-
|
31
|
-
require
|
32
|
-
|
33
|
-
require
|
34
|
-
require
|
35
|
-
require
|
36
|
-
|
37
|
-
require
|
38
|
-
require
|
39
|
-
|
40
|
-
require
|
41
|
-
require
|
42
|
-
require
|
43
|
-
|
44
|
-
require
|
45
|
-
|
46
|
-
require
|
47
|
-
|
48
|
-
require
|
49
|
-
require
|
50
|
-
require
|
51
|
-
require
|
52
|
-
|
53
|
-
require
|
54
|
-
|
55
|
-
require
|
7
|
+
require 'rubygems'
|
8
|
+
require 'yaml'
|
9
|
+
require 'uuidtools'
|
10
|
+
require 'json'
|
11
|
+
require 'uri'
|
12
|
+
|
13
|
+
require 'rservicebus/helper_functions'
|
14
|
+
require 'rservicebus/ErrorMessage'
|
15
|
+
require 'rservicebus/HandlerLoader'
|
16
|
+
require 'rservicebus/HandlerManager'
|
17
|
+
require 'rservicebus/ConfigureAppResource'
|
18
|
+
require 'rservicebus/MQ'
|
19
|
+
require 'rservicebus/Host'
|
20
|
+
require 'rservicebus/Config'
|
21
|
+
require 'rservicebus/EndpointMapping'
|
22
|
+
require 'rservicebus/Stats'
|
23
|
+
require 'rservicebus/StatisticManager'
|
24
|
+
require 'rservicebus/Audit'
|
25
|
+
|
26
|
+
require 'rservicebus/Message'
|
27
|
+
require 'rservicebus/Message/Subscription'
|
28
|
+
require 'rservicebus/Message/StatisticOutput'
|
29
|
+
require 'rservicebus/Message/VerboseOutput'
|
30
|
+
|
31
|
+
require 'rservicebus/UserMessage/WithPayload'
|
32
|
+
|
33
|
+
require 'rservicebus/StateManager'
|
34
|
+
require 'rservicebus/CronManager'
|
35
|
+
require 'rservicebus/CircuitBreaker'
|
36
|
+
|
37
|
+
require 'rservicebus/AppResource'
|
38
|
+
require 'rservicebus/ResourceManager'
|
39
|
+
|
40
|
+
require 'rservicebus/SubscriptionManager'
|
41
|
+
require 'rservicebus/SubscriptionStorage'
|
42
|
+
require 'rservicebus/ConfigureSubscriptionStorage'
|
43
|
+
|
44
|
+
require 'rservicebus/ConfigureMonitor'
|
45
|
+
|
46
|
+
require 'rservicebus/Agent'
|
47
|
+
|
48
|
+
require 'rservicebus/SagaLoader.rb'
|
49
|
+
require 'rservicebus/Saga/Manager.rb'
|
50
|
+
require 'rservicebus/Saga/Data.rb'
|
51
|
+
require 'rservicebus/Saga/Base.rb'
|
52
|
+
|
53
|
+
require 'rservicebus/SagaStorage'
|
54
|
+
|
55
|
+
require 'rservicebus/SendAtManager'
|
56
56
|
|
57
57
|
|
58
58
|
module RServiceBus
|
data/lib/rservicebus/Agent.rb
CHANGED
@@ -10,9 +10,9 @@ end
|
|
10
10
|
@mq
|
11
11
|
|
12
12
|
def getAgent( uri )
|
13
|
-
ENV[
|
13
|
+
ENV['RSBMQ'] = uri.to_s
|
14
14
|
|
15
|
-
RServiceBus.rlog
|
15
|
+
RServiceBus.rlog '*** Agent.getAgent has been deprecated. Set the environment variable, RSBMQ, and simply create the class'
|
16
16
|
return Agent.new
|
17
17
|
end
|
18
18
|
|
@@ -31,10 +31,10 @@ end
|
|
31
31
|
msg = RServiceBus::Message.new( messageObj, returnAddress )
|
32
32
|
|
33
33
|
|
34
|
-
if queueName.index(
|
34
|
+
if queueName.index('@').nil? then
|
35
35
|
q = queueName
|
36
36
|
else
|
37
|
-
parts = queueName.split(
|
37
|
+
parts = queueName.split('@')
|
38
38
|
msg.setRemoteQueueName( parts[0] )
|
39
39
|
msg.setRemoteHostName( parts[1] )
|
40
40
|
q = 'transport-out'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RServiceBus
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'uri'
|
4
4
|
|
5
5
|
# Wrapper base class for resources used by applications, allowing rservicebus to configure the resource
|
6
6
|
# - dependency injection.
|
@@ -12,7 +12,7 @@ module RServiceBus
|
|
12
12
|
# The method which actually connects to the resource.
|
13
13
|
#
|
14
14
|
def connect(uri)
|
15
|
-
raise
|
15
|
+
raise 'Method, connect, needs to be implemented for resource'
|
16
16
|
end
|
17
17
|
|
18
18
|
def _connect
|
@@ -48,8 +48,8 @@ module RServiceBus
|
|
48
48
|
begin
|
49
49
|
self.finished
|
50
50
|
rescue Exception => e
|
51
|
-
puts
|
52
|
-
puts
|
51
|
+
puts '** AppResource. An error was raised while closing connection to, ' + @uri.to_s
|
52
|
+
puts 'Message: ' + e.message
|
53
53
|
puts e.backtrace
|
54
54
|
end
|
55
55
|
|
@@ -5,9 +5,9 @@ module RServiceBus
|
|
5
5
|
def connect(uri)
|
6
6
|
begin
|
7
7
|
inputDir = Dir.new( uri.path )
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
unless File.writable?(uri.path) then
|
9
|
+
puts "*** Warning. Directory is not writable, #{uri.path}."
|
10
|
+
puts "*** Warning. Make the directory, #{uri.path}, writable and try again."
|
11
11
|
end
|
12
12
|
rescue Errno::ENOENT => e
|
13
13
|
puts "***** Directory does not exist, #{uri.path}."
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RServiceBus
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'FluidDb/Mysql'
|
4
4
|
|
5
5
|
#Implementation of an AppResource - Redis
|
6
6
|
class AppResource_FluidDbMysql<AppResource
|
@@ -11,17 +11,17 @@ module RServiceBus
|
|
11
11
|
|
12
12
|
# Transaction Semantics
|
13
13
|
def Begin
|
14
|
-
@connection.execute(
|
14
|
+
@connection.execute( 'BEGIN', [] )
|
15
15
|
end
|
16
16
|
|
17
17
|
# Transaction Semantics
|
18
18
|
def Commit
|
19
|
-
@connection.execute(
|
19
|
+
@connection.execute( 'COMMIT', [] )
|
20
20
|
end
|
21
21
|
|
22
22
|
# Transaction Semantics
|
23
23
|
def Rollback
|
24
|
-
@connection.execute(
|
24
|
+
@connection.execute( 'ROLLBACK', [] )
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RServiceBus
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'FluidDb/Mysql2'
|
4
4
|
|
5
5
|
#Implementation ofF an AppResource - Redis
|
6
6
|
class AppResource_FluidDbMysql2<AppResource
|
@@ -11,17 +11,17 @@ module RServiceBus
|
|
11
11
|
|
12
12
|
# Transaction Semantics
|
13
13
|
def Begin
|
14
|
-
@connection.execute(
|
14
|
+
@connection.execute( 'BEGIN', [] )
|
15
15
|
end
|
16
16
|
|
17
17
|
# Transaction Semantics
|
18
18
|
def Commit
|
19
|
-
@connection.execute(
|
19
|
+
@connection.execute( 'COMMIT', [] )
|
20
20
|
end
|
21
21
|
|
22
22
|
# Transaction Semantics
|
23
23
|
def Rollback
|
24
|
-
@connection.execute(
|
24
|
+
@connection.execute( 'ROLLBACK', [] )
|
25
25
|
end
|
26
26
|
|
27
27
|
end
|