rservicebus2 0.1.1 → 0.2.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.
- checksums.yaml +5 -5
- data/README.md +50 -0
- data/bin/send_empty_message +1 -1
- data/lib/rservicebus2/config.rb +1 -1
- data/lib/rservicebus2/host.rb +2 -2
- data/lib/rservicebus2/mq.rb +9 -0
- data/lib/rservicebus2/mq/aws.rb +85 -0
- data/lib/rservicebus2/mq/file.rb +59 -0
- data/lib/rservicebus2/mq/redis.rb +53 -0
- data/lib/rservicebus2/saga/manager.rb +8 -5
- data/lib/rservicebus2/saga_loader.rb +7 -7
- data/lib/rservicebus2/saga_storage/dir.rb +1 -1
- metadata +48 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3e12a4225a0bdda2fdc600e0f5f1134dacf481343d7e9e3e3837b820ca1f8509
|
4
|
+
data.tar.gz: 02e285f84043c7f457db328a9fd74c1f7f62104531cae5b723ba301aca518a3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2aefd96d740b7020284d95f36256fead951f895fab13e8eeb1440b674ebdb28a580a11ad75c4cbb1dbb270b1aef0ed901af1b94d03459252cfe33947b85aac1
|
7
|
+
data.tar.gz: 848e86f7d3c40f83cdb1f6d3459af1a5265f1e9272c7718da950c81457ff54983c0d00bc3997b0b0955df57798a53ff7be3650463458cdbe2b926c636053ddde
|
data/README.md
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
# rservicebus2
|
2
|
+
|
3
|
+
Use the examples directory as the starting point.
|
4
|
+
|
5
|
+
## General Approach
|
6
|
+
|
7
|
+
1. Convention over Configuration
|
8
|
+
2. Configuration via Environment Variables
|
9
|
+
3. Working examples provided for configuration
|
10
|
+
|
11
|
+
## General Config
|
12
|
+
|
13
|
+
### APPNAME
|
14
|
+
1. Name of process
|
15
|
+
2. Doubles as default queueName
|
16
|
+
3. Defaults to directory name
|
17
|
+
|
18
|
+
### MAX_RETRIES
|
19
|
+
1. If an exception is generated while processing a message, the message can be
|
20
|
+
retried. This allows the number of retries to be set.
|
21
|
+
2. Defaults to 5
|
22
|
+
|
23
|
+
### ERROR_QUEUE_NAME
|
24
|
+
1. If an exception is generated while processing a message, the message can be
|
25
|
+
retried. Once all retries are exhausted, the message will be put in the error queue.
|
26
|
+
2. This allows the name of the queue to be set.
|
27
|
+
3. Defaults to error
|
28
|
+
|
29
|
+
### WORKING_DIR
|
30
|
+
1. Where message handlers are looked for.
|
31
|
+
2. Defaults to current directory
|
32
|
+
|
33
|
+
### VERBOSE
|
34
|
+
1. Send out more logging to track message processing
|
35
|
+
|
36
|
+
### AUDIT_QUEUE_NAME
|
37
|
+
1. When set, a copy of all messages sent and received will be add to this queue
|
38
|
+
|
39
|
+
### RSBCRON_[msg name]
|
40
|
+
1. An empty message will be created and sent based on the cron string
|
41
|
+
|
42
|
+
## RSBMQ - Message queue
|
43
|
+
1. Environment Variable Name: RSBMQ
|
44
|
+
|
45
|
+
### Beanstalk
|
46
|
+
|
47
|
+
### Redis
|
48
|
+
|
49
|
+
### SQS
|
50
|
+
RSBMQ=aws://[region]/[queue_name]
|
data/bin/send_empty_message
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'rservicebus2'
|
4
|
-
require 'rservicebus2/
|
4
|
+
require 'rservicebus2/agent'
|
5
5
|
|
6
6
|
abort "Usage: #{File.basename($0)} <Msg Name> <Queue Name> [Response Queue Name] [Beanstalk Host]" unless ARGV.length >=2 && ARGV.length <=4
|
7
7
|
msg_name = ARGV[0]
|
data/lib/rservicebus2/config.rb
CHANGED
@@ -133,7 +133,7 @@ module RServiceBus2
|
|
133
133
|
def load_working_dir_list
|
134
134
|
puts "Config.load_working_dir_list.1"
|
135
135
|
puts "Config.load_working_dir_list.2 #{@contract_list}"
|
136
|
-
path_list = get_value('WORKING_DIR')
|
136
|
+
path_list = get_value('WORKING_DIR', './')
|
137
137
|
return self if path_list.nil?
|
138
138
|
|
139
139
|
path_list.split(';').each do |path|
|
data/lib/rservicebus2/host.rb
CHANGED
@@ -43,8 +43,8 @@ module RServiceBus2
|
|
43
43
|
|
44
44
|
# Thin veneer for Configuring state
|
45
45
|
def configure_saga_storage
|
46
|
-
string = RServiceBus2.get_value('SAGA_URI')
|
47
|
-
string = 'dir:///tmp' if string.nil?
|
46
|
+
string = RServiceBus2.get_value('SAGA_URI', 'dir:///tmp/saga')
|
47
|
+
# string = 'dir:///tmp' if string.nil?
|
48
48
|
|
49
49
|
uri = URI.parse(string)
|
50
50
|
@saga_storage = SagaStorage.get(uri)
|
data/lib/rservicebus2/mq.rb
CHANGED
@@ -18,6 +18,15 @@ module RServiceBus2
|
|
18
18
|
when 'beanstalk'
|
19
19
|
require 'rservicebus2/mq/beanstalk'
|
20
20
|
mq = MQBeanstalk.new(uri)
|
21
|
+
when 'file'
|
22
|
+
require 'rservicebus2/mq/file'
|
23
|
+
mq = MQFile.new(uri)
|
24
|
+
when 'redis'
|
25
|
+
require 'rservicebus2/mq/redis'
|
26
|
+
mq = MQRedis.new(uri)
|
27
|
+
when 'aws'
|
28
|
+
require 'rservicebus2/mq/aws'
|
29
|
+
mq = MQAWS.new(uri)
|
21
30
|
else
|
22
31
|
abort("Scheme, #{uri.scheme}, not recognised when configuring mq,
|
23
32
|
#{string}")
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'aws-sdk-sqs'
|
2
|
+
require 'aws-sdk-sts'
|
3
|
+
require 'rservicebus2/mq'
|
4
|
+
|
5
|
+
module RServiceBus2
|
6
|
+
# Beanstalk client implementation.
|
7
|
+
class MQAWS < MQ
|
8
|
+
# Connect to the broker
|
9
|
+
# rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
10
|
+
def connect(region, port)
|
11
|
+
begin
|
12
|
+
@max_job_size = 4_194_304
|
13
|
+
@region = region
|
14
|
+
|
15
|
+
sts_client = Aws::STS::Client.new(region: region)
|
16
|
+
@caller_identity_account = sts_client.get_caller_identity.account
|
17
|
+
rescue StandardError => e
|
18
|
+
puts 'Error connecting to AWS'
|
19
|
+
puts "Host string, #{region}"
|
20
|
+
puts e.message
|
21
|
+
puts e.backtrace
|
22
|
+
abort
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def subscribe(queuename)
|
27
|
+
# For example:
|
28
|
+
# 'https://sqs.us-east-1.amazonaws.com/111111111111/my-queue'
|
29
|
+
@queue_url = 'https://sqs.' + @region + '.amazonaws.com/' +
|
30
|
+
@caller_identity_account + '/' + queuename
|
31
|
+
@sqs_client = Aws::SQS::Client.new(region: @region)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Get next msg from queue
|
35
|
+
def pop
|
36
|
+
begin
|
37
|
+
response = @sqs_client.receive_message(
|
38
|
+
queue_url: @queue_url,
|
39
|
+
max_number_of_messages: 1
|
40
|
+
)
|
41
|
+
|
42
|
+
if response.messages.count.zero?
|
43
|
+
raise NoMsgToProcess
|
44
|
+
end
|
45
|
+
|
46
|
+
response.messages.each do |message|
|
47
|
+
@job = message
|
48
|
+
end
|
49
|
+
rescue StandardError => e
|
50
|
+
raise e
|
51
|
+
end
|
52
|
+
@job.body
|
53
|
+
end
|
54
|
+
|
55
|
+
def return_to_queue
|
56
|
+
# @job.release if @job
|
57
|
+
@job = nil
|
58
|
+
end
|
59
|
+
|
60
|
+
def ack
|
61
|
+
@sqs_client.delete_message({
|
62
|
+
queue_url: @queue_url,
|
63
|
+
receipt_handle: @job.receipt_handle
|
64
|
+
})
|
65
|
+
@job = nil
|
66
|
+
end
|
67
|
+
|
68
|
+
def send(queue_name, msg)
|
69
|
+
if msg.length > @max_job_size
|
70
|
+
puts '***Attempting to send a msg which will not fit on queue.'
|
71
|
+
puts "***Msg size, #{msg.length}, max msg size, #{@max_job_size}."
|
72
|
+
fail JobTooBigError, "Msg size, #{msg.length}, max msg size,
|
73
|
+
#{@max_job_size}"
|
74
|
+
end
|
75
|
+
|
76
|
+
queue_url = 'https://sqs.' + @region + '.amazonaws.com/' +
|
77
|
+
@caller_identity_account + '/' + queue_name
|
78
|
+
|
79
|
+
@sqs_client.send_message(
|
80
|
+
queue_url: queue_url,
|
81
|
+
message_body: msg
|
82
|
+
)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'rservicebus2/mq'
|
3
|
+
|
4
|
+
module RServiceBus2
|
5
|
+
# Beanstalk client implementation.
|
6
|
+
class MQFile < MQ
|
7
|
+
# Connect to the broker
|
8
|
+
# rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
9
|
+
|
10
|
+
def initialize(uri)
|
11
|
+
if uri.is_a? URI
|
12
|
+
@uri = uri
|
13
|
+
else
|
14
|
+
puts 'uri must be a valid URI'
|
15
|
+
abort
|
16
|
+
end
|
17
|
+
|
18
|
+
FileUtils.mkdir_p(@uri.path)
|
19
|
+
@local_queue_name = RServiceBus2.get_value('APPNAME', 'RServiceBus')
|
20
|
+
FileUtils.mkdir_p("#{@uri.path}/#{@local_queue_name}")
|
21
|
+
@timeout = RServiceBus2.get_value('QUEUE_TIMEOUT', '5').to_i
|
22
|
+
end
|
23
|
+
|
24
|
+
def subscribe(queue_name)
|
25
|
+
path = "#{@uri.path}/#{queue_name}"
|
26
|
+
FileUtils.mkdir_p(path)
|
27
|
+
@local_queue_name = queue_name
|
28
|
+
end
|
29
|
+
|
30
|
+
# Get next msg from queue
|
31
|
+
def pop
|
32
|
+
time = @timeout
|
33
|
+
while time > 0
|
34
|
+
files = Dir.glob("#{@uri.path}/#{@local_queue_name}/*.msg")
|
35
|
+
if files.length > 0
|
36
|
+
@file_path = files[0]
|
37
|
+
@body = IO.read(@file_path)
|
38
|
+
return @body
|
39
|
+
end
|
40
|
+
time -= 1
|
41
|
+
sleep(1)
|
42
|
+
end
|
43
|
+
|
44
|
+
raise NoMsgToProcess if files.length == 0
|
45
|
+
end
|
46
|
+
|
47
|
+
def return_to_queue
|
48
|
+
end
|
49
|
+
|
50
|
+
def ack
|
51
|
+
FileUtils.rm @file_path
|
52
|
+
end
|
53
|
+
|
54
|
+
def send(queue_name, msg)
|
55
|
+
FileUtils.mkdir_p("#{@uri.path}/#{queue_name}")
|
56
|
+
IO.write("#{@uri.path}/#{queue_name}/#{rand()}.msg", msg)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'redis'
|
2
|
+
require 'rservicebus2/mq'
|
3
|
+
|
4
|
+
module RServiceBus2
|
5
|
+
# Redis client implementation.
|
6
|
+
class MQRedis < MQ
|
7
|
+
# Connect to the broker
|
8
|
+
# rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
9
|
+
def connect(host, port)
|
10
|
+
port ||= 6379
|
11
|
+
string = "#{host}:#{port}"
|
12
|
+
|
13
|
+
begin
|
14
|
+
@redis = Redis.new(:host => host, :port => port)
|
15
|
+
|
16
|
+
rescue Exception => e
|
17
|
+
puts e.message
|
18
|
+
puts 'Error connecting to Redis for mq'
|
19
|
+
puts "Host string, #{string}"
|
20
|
+
abort()
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Connect to the queue
|
25
|
+
def subscribe( queuename )
|
26
|
+
@queuename = queuename
|
27
|
+
end
|
28
|
+
|
29
|
+
# Get next msg from queue
|
30
|
+
def pop
|
31
|
+
if @redis.llen( @queuename ) == 0 then
|
32
|
+
sleep @timeout
|
33
|
+
raise NoMsgToProcess.new
|
34
|
+
end
|
35
|
+
|
36
|
+
return @redis.lindex @queuename, 0
|
37
|
+
end
|
38
|
+
|
39
|
+
def returnToQueue
|
40
|
+
end
|
41
|
+
|
42
|
+
# "Commit" queue
|
43
|
+
def ack
|
44
|
+
@redis.lpop @queuename
|
45
|
+
end
|
46
|
+
|
47
|
+
# At least called in the Host rescue block, to ensure all network links are healthy
|
48
|
+
def send( queueName, msg )
|
49
|
+
@redis.rpush queueName, msg
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
@@ -24,7 +24,7 @@ module RServiceBus2
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def get_start_with_method_names(saga)
|
27
|
-
get_methods_by_prefix(saga, '
|
27
|
+
get_methods_by_prefix(saga, 'start_with_')
|
28
28
|
end
|
29
29
|
|
30
30
|
# setBusAttributeIfRequested
|
@@ -63,7 +63,7 @@ module RServiceBus2
|
|
63
63
|
@start_with[msg_name] = [] if @start_with[msg_name].nil?
|
64
64
|
@start_with[msg_name] << s
|
65
65
|
|
66
|
-
RServiceBus2.log "Registered, #{saga.name}, to
|
66
|
+
RServiceBus2.log "Registered, #{saga.name}, to start_with, #{msg_name}", true
|
67
67
|
end
|
68
68
|
|
69
69
|
@saga[saga.name] = s
|
@@ -88,12 +88,13 @@ module RServiceBus2
|
|
88
88
|
msg_class_name = msg.class.name.downcase
|
89
89
|
|
90
90
|
RServiceBus2.log "SagaManager, started processing, #{msg_class_name}", true
|
91
|
-
|
91
|
+
if @start_with.key?(msg_class_name)
|
92
|
+
# unless @start_with[msg_class_name].nil?
|
92
93
|
@start_with[msg_class_name].each do |saga|
|
93
94
|
data = SagaData.new(saga)
|
94
95
|
@saga_storage.set(data)
|
95
96
|
|
96
|
-
method_name = "
|
97
|
+
method_name = "start_with_#{msg_class_name}"
|
97
98
|
process_msg(saga, data, method_name, msg)
|
98
99
|
|
99
100
|
handled = true
|
@@ -102,8 +103,10 @@ module RServiceBus2
|
|
102
103
|
return handled if handled == true
|
103
104
|
|
104
105
|
return false if rmsg.correlation_id.nil?
|
106
|
+
|
105
107
|
data = @saga_storage.get(rmsg.correlation_id)
|
106
|
-
return
|
108
|
+
return false if data.nil?
|
109
|
+
|
107
110
|
method_name = "handle_#{msg_class_name}"
|
108
111
|
saga = @saga[data.saga_class_name]
|
109
112
|
process_msg(saga, data, method_name, msg)
|
@@ -16,21 +16,21 @@ module RServiceBus2
|
|
16
16
|
# Cleans the given path to ensure it can be used for as a parameter for the
|
17
17
|
# require statement.
|
18
18
|
# @param [String] file_path the path to be cleaned
|
19
|
-
def get_require_path(
|
19
|
+
def get_require_path(file_path)
|
20
20
|
file_path = './' + file_path unless file_path.start_with?('/')
|
21
21
|
|
22
22
|
return file_path.sub('.rb', '') if File.exist?(file_path)
|
23
23
|
|
24
|
-
abort('Filepath, ' +
|
24
|
+
abort('Filepath, ' + file_path + ", given for Saga require doesn't exist")
|
25
25
|
end
|
26
26
|
|
27
|
-
# Instantiate the saga named in sagaName from the file name in
|
27
|
+
# Instantiate the saga named in sagaName from the file name in file_path
|
28
28
|
# Exceptions will be raised if encountered when loading sagas. This is a
|
29
29
|
# load time activity, so sagas should load correctly. As much information
|
30
30
|
# as possible is returned to enable the saga to be fixed, or configuration
|
31
31
|
# corrected.
|
32
32
|
# @param [String] sagaName name of the saga to instantiate
|
33
|
-
# @param [String]
|
33
|
+
# @param [String] file_path the path to the file to be loaded
|
34
34
|
# @return [RServiceBus2::Saga] the loader
|
35
35
|
def load_saga_from_file(saga_name, file_path)
|
36
36
|
require_path = get_require_path(file_path)
|
@@ -50,7 +50,7 @@ module RServiceBus2
|
|
50
50
|
end
|
51
51
|
|
52
52
|
# Wrapper function
|
53
|
-
# @param [String]
|
53
|
+
# @param [String] file_path
|
54
54
|
# @param [String] sagaName
|
55
55
|
# @returns [RServiceBus2::Saga] saga
|
56
56
|
def load_saga(file_path, saga_name)
|
@@ -97,7 +97,7 @@ module RServiceBus2
|
|
97
97
|
|
98
98
|
saga_name = base_name.sub(ext_name, '')
|
99
99
|
|
100
|
-
"
|
100
|
+
"saga_#{saga_name}".gsub(/(?<=_|^)(\w)/){$1.upcase}.gsub(/(?:_)(\w)/,'\1')
|
101
101
|
end
|
102
102
|
|
103
103
|
# Entry point for loading Sagas
|
@@ -106,7 +106,7 @@ module RServiceBus2
|
|
106
106
|
RServiceBus2.rlog "SagaLoader.loadSagasFromPath. base_dir: #{base_dir}"
|
107
107
|
|
108
108
|
get_list_of_files_for_dir(base_dir).each do |file_path|
|
109
|
-
unless
|
109
|
+
unless file_path.end_with?('.')
|
110
110
|
saga_name = get_saga_name(file_path)
|
111
111
|
load_saga(file_path, saga_name)
|
112
112
|
end
|
metadata
CHANGED
@@ -1,85 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rservicebus2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guy Irvine
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uuidtools
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.5.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.5.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: beanstalk-client
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.1.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.1.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: fluiddb
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.1.19
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 0.1.19
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: parse-cron
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 0.1.4
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 0.1.4
|
83
83
|
description: A Ruby interpretation of NServiceBus
|
84
84
|
email: guy@guyirvine.com
|
85
85
|
executables:
|
@@ -92,12 +92,22 @@ executables:
|
|
92
92
|
extensions: []
|
93
93
|
extra_rdoc_files: []
|
94
94
|
files:
|
95
|
+
- LICENSE
|
96
|
+
- README.md
|
97
|
+
- bin/return_messages_to_source_queue
|
98
|
+
- bin/rsb_ctl
|
99
|
+
- bin/rservicebus2
|
100
|
+
- bin/rservicebus2-create
|
101
|
+
- bin/rservicebus2-init
|
102
|
+
- bin/rservicebus2-transport
|
103
|
+
- bin/send_empty_message
|
104
|
+
- lib/rservicebus2.rb
|
95
105
|
- lib/rservicebus2/agent.rb
|
106
|
+
- lib/rservicebus2/appresource.rb
|
96
107
|
- lib/rservicebus2/appresource/dir.rb
|
97
108
|
- lib/rservicebus2/appresource/file.rb
|
98
109
|
- lib/rservicebus2/appresource/fluiddb.rb
|
99
110
|
- lib/rservicebus2/appresource/fluiddb2.rb
|
100
|
-
- lib/rservicebus2/appresource.rb
|
101
111
|
- lib/rservicebus2/appresource_configure.rb
|
102
112
|
- lib/rservicebus2/audit.rb
|
103
113
|
- lib/rservicebus2/circuitbreaker.rb
|
@@ -109,58 +119,52 @@ files:
|
|
109
119
|
- lib/rservicebus2/handler_manager.rb
|
110
120
|
- lib/rservicebus2/helper_functions.rb
|
111
121
|
- lib/rservicebus2/host.rb
|
122
|
+
- lib/rservicebus2/message.rb
|
112
123
|
- lib/rservicebus2/message/statisticoutput.rb
|
113
124
|
- lib/rservicebus2/message/subscription.rb
|
114
125
|
- lib/rservicebus2/message/verboseoutput.rb
|
115
|
-
- lib/rservicebus2/
|
126
|
+
- lib/rservicebus2/monitor.rb
|
116
127
|
- lib/rservicebus2/monitor/dir.rb
|
117
128
|
- lib/rservicebus2/monitor/dirnotifier.rb
|
118
129
|
- lib/rservicebus2/monitor/message.rb
|
119
130
|
- lib/rservicebus2/monitor/xmldir.rb
|
120
|
-
- lib/rservicebus2/monitor.rb
|
121
131
|
- lib/rservicebus2/monitor_configure.rb
|
122
|
-
- lib/rservicebus2/mq/beanstalk.rb
|
123
132
|
- lib/rservicebus2/mq.rb
|
133
|
+
- lib/rservicebus2/mq/aws.rb
|
134
|
+
- lib/rservicebus2/mq/beanstalk.rb
|
135
|
+
- lib/rservicebus2/mq/file.rb
|
136
|
+
- lib/rservicebus2/mq/redis.rb
|
124
137
|
- lib/rservicebus2/resource_manager.rb
|
125
138
|
- lib/rservicebus2/saga/base.rb
|
126
139
|
- lib/rservicebus2/saga/data.rb
|
127
140
|
- lib/rservicebus2/saga/manager.rb
|
128
141
|
- lib/rservicebus2/saga_loader.rb
|
142
|
+
- lib/rservicebus2/saga_storage.rb
|
129
143
|
- lib/rservicebus2/saga_storage/dir.rb
|
130
144
|
- lib/rservicebus2/saga_storage/inmemory.rb
|
131
|
-
- lib/rservicebus2/saga_storage.rb
|
132
145
|
- lib/rservicebus2/sendat_manager.rb
|
146
|
+
- lib/rservicebus2/sendat_storage.rb
|
133
147
|
- lib/rservicebus2/sendat_storage/file.rb
|
134
148
|
- lib/rservicebus2/sendat_storage/inmemory.rb
|
135
|
-
- lib/rservicebus2/sendat_storage.rb
|
136
149
|
- lib/rservicebus2/state_manager.rb
|
150
|
+
- lib/rservicebus2/state_storage.rb
|
137
151
|
- lib/rservicebus2/state_storage/dir.rb
|
138
152
|
- lib/rservicebus2/state_storage/inmemory.rb
|
139
|
-
- lib/rservicebus2/state_storage.rb
|
140
153
|
- lib/rservicebus2/statistic_manager.rb
|
141
154
|
- lib/rservicebus2/stats.rb
|
142
155
|
- lib/rservicebus2/subscription_manager.rb
|
143
|
-
- lib/rservicebus2/subscription_storage/file.rb
|
144
156
|
- lib/rservicebus2/subscription_storage.rb
|
157
|
+
- lib/rservicebus2/subscription_storage/file.rb
|
145
158
|
- lib/rservicebus2/subscription_storage_configure.rb
|
146
|
-
- lib/rservicebus2/test/bus.rb
|
147
159
|
- lib/rservicebus2/test.rb
|
160
|
+
- lib/rservicebus2/test/bus.rb
|
148
161
|
- lib/rservicebus2/transporter.rb
|
149
162
|
- lib/rservicebus2/usermessage/withpayload.rb
|
150
|
-
- lib/rservicebus2.rb
|
151
|
-
- bin/return_messages_to_source_queue
|
152
|
-
- bin/rsb_ctl
|
153
|
-
- bin/rservicebus2
|
154
|
-
- bin/rservicebus2-create
|
155
|
-
- bin/rservicebus2-init
|
156
|
-
- bin/rservicebus2-transport
|
157
|
-
- bin/send_empty_message
|
158
|
-
- LICENSE
|
159
163
|
homepage: http://rubygems.org/gems/rservicebus2
|
160
164
|
licenses:
|
161
165
|
- LGPL-3.0
|
162
166
|
metadata: {}
|
163
|
-
post_install_message:
|
167
|
+
post_install_message:
|
164
168
|
rdoc_options: []
|
165
169
|
require_paths:
|
166
170
|
- lib
|
@@ -175,9 +179,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
179
|
- !ruby/object:Gem::Version
|
176
180
|
version: '0'
|
177
181
|
requirements: []
|
178
|
-
|
179
|
-
|
180
|
-
signing_key:
|
182
|
+
rubygems_version: 3.0.9
|
183
|
+
signing_key:
|
181
184
|
specification_version: 4
|
182
185
|
summary: RServiceBus
|
183
186
|
test_files: []
|