rservicebus 0.0.01 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README.md +48 -0
- data/bin/{rservicebus2 → rservicebus} +2 -1
- data/lib/rservicebus.rb +15 -54
- data/lib/rservicebus/Agent.rb +21 -0
- data/lib/rservicebus/Config.rb +125 -0
- data/lib/rservicebus/ErrorMessage.rb +14 -0
- data/lib/rservicebus/HandlerLoader.rb +100 -0
- data/lib/rservicebus/Host.rb +340 -0
- data/lib/rservicebus/Message.rb +29 -0
- data/lib/rservicebus/Subscription.rb +13 -0
- data/lib/rservicebus/helper_functions.rb +8 -81
- metadata +23 -150
- checksums.yaml +0 -7
- data/bin/return_messages_to_source_queue +0 -114
- data/bin/rsb_ctl +0 -38
- data/bin/rservicebus2-create +0 -107
- data/bin/rservicebus2-init +0 -104
- data/bin/rservicebus2-transport +0 -16
- data/bin/send_empty_message +0 -15
- data/lib/rservicebus/agent.rb +0 -54
- data/lib/rservicebus/appresource.rb +0 -65
- data/lib/rservicebus/appresource/dir.rb +0 -29
- data/lib/rservicebus/appresource/file.rb +0 -8
- data/lib/rservicebus/appresource/fluiddb.rb +0 -24
- data/lib/rservicebus/appresource_configure.rb +0 -33
- data/lib/rservicebus/audit.rb +0 -28
- data/lib/rservicebus/circuitbreaker.rb +0 -79
- data/lib/rservicebus/config.rb +0 -168
- data/lib/rservicebus/cron_manager.rb +0 -76
- data/lib/rservicebus/endpointmapping.rb +0 -72
- data/lib/rservicebus/errormessage.rb +0 -14
- data/lib/rservicebus/handler_loader.rb +0 -162
- data/lib/rservicebus/handler_manager.rb +0 -131
- data/lib/rservicebus/host.rb +0 -487
- data/lib/rservicebus/message.rb +0 -78
- data/lib/rservicebus/message/statisticoutput.rb +0 -7
- data/lib/rservicebus/message/subscription.rb +0 -10
- data/lib/rservicebus/message/verboseoutput.rb +0 -7
- data/lib/rservicebus/monitor.rb +0 -61
- data/lib/rservicebus/monitor/csvdir.rb +0 -52
- data/lib/rservicebus/monitor/dir.rb +0 -139
- data/lib/rservicebus/monitor/dirnotifier.rb +0 -101
- data/lib/rservicebus/monitor/message.rb +0 -11
- data/lib/rservicebus/monitor/xmldir.rb +0 -11
- data/lib/rservicebus/monitor_configure.rb +0 -71
- data/lib/rservicebus/mq.rb +0 -98
- data/lib/rservicebus/mq/beanstalk.rb +0 -72
- data/lib/rservicebus/resource_manager.rb +0 -69
- data/lib/rservicebus/saga/base.rb +0 -17
- data/lib/rservicebus/saga/data.rb +0 -20
- data/lib/rservicebus/saga/manager.rb +0 -128
- data/lib/rservicebus/saga_loader.rb +0 -118
- data/lib/rservicebus/saga_storage.rb +0 -18
- data/lib/rservicebus/saga_storage/dir.rb +0 -87
- data/lib/rservicebus/saga_storage/inmemory.rb +0 -37
- data/lib/rservicebus/sendat_manager.rb +0 -33
- data/lib/rservicebus/sendat_storage.rb +0 -20
- data/lib/rservicebus/sendat_storage/file.rb +0 -37
- data/lib/rservicebus/sendat_storage/inmemory.rb +0 -20
- data/lib/rservicebus/state_manager.rb +0 -30
- data/lib/rservicebus/state_storage.rb +0 -18
- data/lib/rservicebus/state_storage/dir.rb +0 -66
- data/lib/rservicebus/state_storage/inmemory.rb +0 -25
- data/lib/rservicebus/statistic_manager.rb +0 -86
- data/lib/rservicebus/stats.rb +0 -68
- data/lib/rservicebus/subscription_manager.rb +0 -31
- data/lib/rservicebus/subscription_storage.rb +0 -39
- data/lib/rservicebus/subscription_storage/file.rb +0 -42
- data/lib/rservicebus/subscription_storage/redis.rb +0 -69
- data/lib/rservicebus/subscription_storage_configure.rb +0 -19
- data/lib/rservicebus/test.rb +0 -2
- data/lib/rservicebus/test/bus.rb +0 -32
- data/lib/rservicebus/transporter.rb +0 -142
- data/lib/rservicebus/usermessage/withpayload.rb +0 -10
@@ -0,0 +1,29 @@
|
|
1
|
+
module RServiceBus
|
2
|
+
|
3
|
+
class Message
|
4
|
+
|
5
|
+
attr_reader :returnAddress, :msgId
|
6
|
+
|
7
|
+
def initialize( msg, returnAddress )
|
8
|
+
@_msg=YAML::dump(msg)
|
9
|
+
@returnAddress=returnAddress
|
10
|
+
|
11
|
+
@msgId=UUIDTools::UUID.random_create
|
12
|
+
@errorList = Array.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def addErrorMsg( sourceQueue, errorString )
|
16
|
+
@errorList << RServiceBus::ErrorMessage.new( sourceQueue, errorString )
|
17
|
+
end
|
18
|
+
|
19
|
+
def getLastErrorMsg
|
20
|
+
return @errorList.last
|
21
|
+
end
|
22
|
+
|
23
|
+
def msg
|
24
|
+
return YAML::load( @_msg )
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -1,85 +1,12 @@
|
|
1
1
|
module RServiceBus
|
2
|
-
def self.convert_dto_to_hash(obj)
|
3
|
-
hash = {}
|
4
|
-
obj.instance_variables.each do |var|
|
5
|
-
hash[var.to_s.delete('@')] = obj.instance_variable_get(var)
|
6
|
-
end
|
7
|
-
hash
|
8
|
-
end
|
9
2
|
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
def RServiceBus.convertDTOToJson( obj )
|
4
|
+
hash = {};
|
5
|
+
obj.instance_variables.each {|var| hash[var.to_s.delete("@")] = obj.instance_variable_get(var) }
|
6
|
+
|
7
|
+
newOne = hash.to_json
|
13
8
|
|
14
|
-
|
15
|
-
|
9
|
+
return newOne
|
10
|
+
end
|
16
11
|
|
17
|
-
|
18
|
-
if check_environment_variable('VERBOSE') || !ver
|
19
|
-
timestamp = Time.new.strftime('%Y-%m-%d %H:%M:%S')
|
20
|
-
puts "[#{type}] #{timestamp} :: #{string}"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.rlog(string)
|
25
|
-
return unless check_environment_variable('RSBVERBOSE')
|
26
|
-
|
27
|
-
timestamp = Time.new.strftime('%Y-%m-%d %H:%M:%S')
|
28
|
-
puts "[RSB] #{timestamp} :: #{string}"
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.create_anonymous_class(name_for_class)
|
32
|
-
new_anonymous_class = Class.new(Object)
|
33
|
-
Object.const_set(name_for_class, new_anonymous_class)
|
34
|
-
Object.const_get(name_for_class).new
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.get_value(name, default = nil)
|
38
|
-
value = (ENV[name].nil? || ENV[name] == '') ? default : ENV[name]
|
39
|
-
log "Env value: #{name}: #{value}"
|
40
|
-
value
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.send_msg(msg, response_queue = 'agent')
|
44
|
-
require 'rservicebus/endpointmapping'
|
45
|
-
endpoint_mapping = EndpointMapping.new
|
46
|
-
endpoint_mapping.configure
|
47
|
-
queue_name = endpoint_mapping.get(msg.class.name)
|
48
|
-
|
49
|
-
ENV['RSBMQ'] = 'beanstalk://localhost' if ENV['RSBMQ'].nil?
|
50
|
-
agent = RServiceBus::Agent.new
|
51
|
-
Audit.new(agent).audit_to_queue(msg)
|
52
|
-
agent.send_msg(msg, queue_name, response_queue)
|
53
|
-
|
54
|
-
rescue QueueNotFoundForMsg => e
|
55
|
-
msg = "\n"
|
56
|
-
msg = "#{msg}*** Queue not found for, #{e.message}\n"
|
57
|
-
msg = "#{msg}*** Ensure you have an environment variable set for this
|
58
|
-
Message Type, eg, \n"
|
59
|
-
msg = "#{msg}*** MESSAGE_ENDPOINT_MAPPINGS=#{e.message}:<QueueName>\n"
|
60
|
-
raise StandardError, msg
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.check_for_reply(queue_name)
|
64
|
-
ENV['RSBMQ'] = 'beanstalk://localhost' if ENV['RSBMQ'].nil?
|
65
|
-
agent = RServiceBus::Agent.new
|
66
|
-
msg = agent.check_for_reply(queue_name)
|
67
|
-
Audit.new(agent).audit_incoming(msg)
|
68
|
-
|
69
|
-
msg
|
70
|
-
end
|
71
|
-
|
72
|
-
def self.tick(string)
|
73
|
-
puts "[TICK] #{Time.new.strftime('%Y-%m-%d %H:%M:%S.%6N')} ::
|
74
|
-
#{caller[0]}. #{string}"
|
75
|
-
end
|
76
|
-
|
77
|
-
def self.check_environment_variable(string)
|
78
|
-
return false if ENV[string].nil?
|
79
|
-
return true if ENV[string] == true || ENV[string] =~ (/(true|t|yes|y|1)$/i)
|
80
|
-
return false if ENV[string] == false ||
|
81
|
-
ENV[string].nil? ||
|
82
|
-
ENV[string] =~ (/(false|f|no|n|0)$/i)
|
83
|
-
fail ArgumentError, "invalid value for Environment Variable: \"#{string}\""
|
84
|
-
end
|
85
|
-
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,184 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rservicebus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Guy Irvine
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
name: uuidtools
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: json
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: beanstalk-client
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: fluiddb
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: parse-cron
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '>='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
description: A Ruby interpretation of NServiceBus
|
12
|
+
date: 2012-06-08 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: A ruby implementation of NServiceBus
|
84
15
|
email: guy@guyirvine.com
|
85
16
|
executables:
|
86
|
-
-
|
87
|
-
- rservicebus2-init
|
88
|
-
- return_messages_to_source_queue
|
89
|
-
- send_empty_message
|
90
|
-
- rservicebus2-transport
|
91
|
-
- rservicebus2-create
|
17
|
+
- rservicebus
|
92
18
|
extensions: []
|
93
19
|
extra_rdoc_files: []
|
94
20
|
files:
|
95
|
-
- lib/rservicebus/
|
96
|
-
- lib/rservicebus/
|
97
|
-
- lib/rservicebus/
|
98
|
-
- lib/rservicebus/
|
99
|
-
- lib/rservicebus/appresource.rb
|
100
|
-
- lib/rservicebus/appresource_configure.rb
|
101
|
-
- lib/rservicebus/audit.rb
|
102
|
-
- lib/rservicebus/circuitbreaker.rb
|
103
|
-
- lib/rservicebus/config.rb
|
104
|
-
- lib/rservicebus/cron_manager.rb
|
105
|
-
- lib/rservicebus/endpointmapping.rb
|
106
|
-
- lib/rservicebus/errormessage.rb
|
107
|
-
- lib/rservicebus/handler_loader.rb
|
108
|
-
- lib/rservicebus/handler_manager.rb
|
21
|
+
- lib/rservicebus/Agent.rb
|
22
|
+
- lib/rservicebus/Config.rb
|
23
|
+
- lib/rservicebus/ErrorMessage.rb
|
24
|
+
- lib/rservicebus/HandlerLoader.rb
|
109
25
|
- lib/rservicebus/helper_functions.rb
|
110
|
-
- lib/rservicebus/
|
111
|
-
- lib/rservicebus/
|
112
|
-
- lib/rservicebus/
|
113
|
-
- lib/rservicebus/message/verboseoutput.rb
|
114
|
-
- lib/rservicebus/message.rb
|
115
|
-
- lib/rservicebus/monitor/csvdir.rb
|
116
|
-
- lib/rservicebus/monitor/dir.rb
|
117
|
-
- lib/rservicebus/monitor/dirnotifier.rb
|
118
|
-
- lib/rservicebus/monitor/message.rb
|
119
|
-
- lib/rservicebus/monitor/xmldir.rb
|
120
|
-
- lib/rservicebus/monitor.rb
|
121
|
-
- lib/rservicebus/monitor_configure.rb
|
122
|
-
- lib/rservicebus/mq/beanstalk.rb
|
123
|
-
- lib/rservicebus/mq.rb
|
124
|
-
- lib/rservicebus/resource_manager.rb
|
125
|
-
- lib/rservicebus/saga/base.rb
|
126
|
-
- lib/rservicebus/saga/data.rb
|
127
|
-
- lib/rservicebus/saga/manager.rb
|
128
|
-
- lib/rservicebus/saga_loader.rb
|
129
|
-
- lib/rservicebus/saga_storage/dir.rb
|
130
|
-
- lib/rservicebus/saga_storage/inmemory.rb
|
131
|
-
- lib/rservicebus/saga_storage.rb
|
132
|
-
- lib/rservicebus/sendat_manager.rb
|
133
|
-
- lib/rservicebus/sendat_storage/file.rb
|
134
|
-
- lib/rservicebus/sendat_storage/inmemory.rb
|
135
|
-
- lib/rservicebus/sendat_storage.rb
|
136
|
-
- lib/rservicebus/state_manager.rb
|
137
|
-
- lib/rservicebus/state_storage/dir.rb
|
138
|
-
- lib/rservicebus/state_storage/inmemory.rb
|
139
|
-
- lib/rservicebus/state_storage.rb
|
140
|
-
- lib/rservicebus/statistic_manager.rb
|
141
|
-
- lib/rservicebus/stats.rb
|
142
|
-
- lib/rservicebus/subscription_manager.rb
|
143
|
-
- lib/rservicebus/subscription_storage/file.rb
|
144
|
-
- lib/rservicebus/subscription_storage/redis.rb
|
145
|
-
- lib/rservicebus/subscription_storage.rb
|
146
|
-
- lib/rservicebus/subscription_storage_configure.rb
|
147
|
-
- lib/rservicebus/test/bus.rb
|
148
|
-
- lib/rservicebus/test.rb
|
149
|
-
- lib/rservicebus/transporter.rb
|
150
|
-
- lib/rservicebus/usermessage/withpayload.rb
|
26
|
+
- lib/rservicebus/Host.rb
|
27
|
+
- lib/rservicebus/Message.rb
|
28
|
+
- lib/rservicebus/Subscription.rb
|
151
29
|
- lib/rservicebus.rb
|
152
|
-
- bin/
|
153
|
-
- bin/rsb_ctl
|
154
|
-
- bin/rservicebus2
|
155
|
-
- bin/rservicebus2-create
|
156
|
-
- bin/rservicebus2-init
|
157
|
-
- bin/rservicebus2-transport
|
158
|
-
- bin/send_empty_message
|
30
|
+
- bin/rservicebus
|
159
31
|
- LICENSE
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
metadata: {}
|
32
|
+
- README.md
|
33
|
+
homepage: http://rubygems.org/gems/rservicebus
|
34
|
+
licenses: []
|
164
35
|
post_install_message:
|
165
36
|
rdoc_options: []
|
166
37
|
require_paths:
|
167
38
|
- lib
|
168
39
|
required_ruby_version: !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
169
41
|
requirements:
|
170
|
-
- - '>='
|
42
|
+
- - ! '>='
|
171
43
|
- !ruby/object:Gem::Version
|
172
44
|
version: '0'
|
173
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
174
47
|
requirements:
|
175
|
-
- - '>='
|
48
|
+
- - ! '>='
|
176
49
|
- !ruby/object:Gem::Version
|
177
50
|
version: '0'
|
178
51
|
requirements: []
|
179
52
|
rubyforge_project:
|
180
|
-
rubygems_version:
|
53
|
+
rubygems_version: 1.8.11
|
181
54
|
signing_key:
|
182
|
-
specification_version:
|
55
|
+
specification_version: 3
|
183
56
|
summary: RServiceBus
|
184
57
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 0c210488f5742bbdd7e68c7cd5562a8ac12145a1
|
4
|
-
data.tar.gz: 85465c96ba453c1cca9e9d9763d99189b635cc4c
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: a4b8b205a755636d9fe101d67bf2bc676b186f47d256d07784774966c7666e0ea9c9853d06396e93f350c85296f23e9651c6809d88cc77fe97d20e72c4848594
|
7
|
-
data.tar.gz: e5eb45cad62fb91eca1be57b27fbf161d23c23d57973456ce949166dd271cc21fddeefee1eb7ea63c24cc572fce940b5e2bf8a9d0b4fcbaa8f4a7613edda13c4
|
@@ -1,114 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'yaml'
|
4
|
-
require 'beanstalk-client'
|
5
|
-
require 'rservicebus'
|
6
|
-
|
7
|
-
def returnMsg( beanstalk, job, request_nbr )
|
8
|
-
firstMatch = 'ruby/object:'
|
9
|
-
|
10
|
-
payload = job.body
|
11
|
-
|
12
|
-
firstIndex = payload.index( firstMatch )
|
13
|
-
startIndex = payload.index( firstMatch, firstIndex + 1 ) + firstMatch.length
|
14
|
-
|
15
|
-
msgName = payload.match( '(\w*)', startIndex )[1]
|
16
|
-
|
17
|
-
msg = YAML::load(payload)
|
18
|
-
if msg.lastErrorString.nil? then
|
19
|
-
puts "*** Requested msg, #{request_nbr}, does not have a sourceQueue to which it can be returned"
|
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
|
-
|
25
|
-
job.release
|
26
|
-
return
|
27
|
-
end
|
28
|
-
queueName = msg.lastErrorSourceQueue
|
29
|
-
puts '#' + "#{request_nbr.to_s}: #{msgName} to #{queueName}"
|
30
|
-
|
31
|
-
beanstalk.use( queueName )
|
32
|
-
beanstalk.put( payload )
|
33
|
-
|
34
|
-
job.delete
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
index=nil
|
39
|
-
if ARGV.length == 0 then
|
40
|
-
queueName = 'error'
|
41
|
-
elsif ARGV.length == 1 then
|
42
|
-
queueName = ARGV[0]
|
43
|
-
elsif ARGV.length == 2 then
|
44
|
-
queueName = ARGV[0]
|
45
|
-
index = ARGV[1].to_i
|
46
|
-
else
|
47
|
-
abort('Usage: ReturnMessagesToSourceQueue [queue name] [index]')
|
48
|
-
end
|
49
|
-
|
50
|
-
begin
|
51
|
-
host = 'localhost:11300'
|
52
|
-
beanstalk = Beanstalk::Pool.new([host])
|
53
|
-
|
54
|
-
tubes = beanstalk.list_tubes[host]
|
55
|
-
unless tubes.include?(queueName) then
|
56
|
-
abort("Nothing waiting on the Beanstalk queue, #{queueName}")
|
57
|
-
end
|
58
|
-
|
59
|
-
tubeStats = beanstalk.stats_tube(queueName)
|
60
|
-
number_of_messages = tubeStats['current-jobs-ready']
|
61
|
-
if index.nil? then
|
62
|
-
puts
|
63
|
-
puts "Attempting to return #{number_of_messages} to their source queue"
|
64
|
-
puts
|
65
|
-
|
66
|
-
begin
|
67
|
-
beanstalk.watch(queueName)
|
68
|
-
1.upto(number_of_messages) do |request_nbr|
|
69
|
-
job = beanstalk.reserve 1
|
70
|
-
|
71
|
-
returnMsg( beanstalk, job, request_nbr )
|
72
|
-
end
|
73
|
-
rescue Exception => e
|
74
|
-
if e.message == 'TIMED_OUT' then
|
75
|
-
else
|
76
|
-
raise
|
77
|
-
end
|
78
|
-
end
|
79
|
-
else
|
80
|
-
if index > number_of_messages then
|
81
|
-
puts "*** Requested msg, #{index}, is greater than the number of msgs in the queue, #{number_of_messages}"
|
82
|
-
puts '*** Try a smaller index, or remove the index number to return all msgs'
|
83
|
-
abort();
|
84
|
-
end
|
85
|
-
|
86
|
-
puts
|
87
|
-
puts "Attempting to msg number, #{index} to it's source queue"
|
88
|
-
puts
|
89
|
-
|
90
|
-
begin
|
91
|
-
beanstalk.watch(queueName)
|
92
|
-
jobList = Array.new
|
93
|
-
1.upto(index-1) do |request_nbr|
|
94
|
-
job = beanstalk.reserve 1
|
95
|
-
jobList << job
|
96
|
-
end
|
97
|
-
job = beanstalk.reserve 1
|
98
|
-
returnMsg( beanstalk, job, index )
|
99
|
-
|
100
|
-
jobList.each do |job|
|
101
|
-
job.release
|
102
|
-
end
|
103
|
-
|
104
|
-
rescue Exception => e
|
105
|
-
if e.message == 'TIMED_OUT' then
|
106
|
-
else
|
107
|
-
raise
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
rescue Beanstalk::NotConnected=>e
|
113
|
-
puts 'Beanstalk not running'
|
114
|
-
end
|