rservicebus 0.1.30 → 0.1.31
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.
- data/lib/rservicebus/CronManager.rb +41 -0
- data/lib/rservicebus/Host.rb +13 -3
- data/lib/rservicebus.rb +1 -0
- metadata +22 -10
@@ -0,0 +1,41 @@
|
|
1
|
+
module RServiceBus
|
2
|
+
|
3
|
+
require 'parse-cron'
|
4
|
+
|
5
|
+
class CronManager
|
6
|
+
|
7
|
+
def initialize( host )
|
8
|
+
@Bus = host
|
9
|
+
|
10
|
+
@Bus.log "Load Cron", true
|
11
|
+
@list = Array.new
|
12
|
+
ENV.each do |k,v|
|
13
|
+
if k.start_with?( "RSBCRON_" ) then
|
14
|
+
hash = Hash.new
|
15
|
+
hash['name'] = k.sub( "RSBCRON_", "" )
|
16
|
+
hash['last'] = Time.now
|
17
|
+
hash['v'] = v
|
18
|
+
hash['cron'] = CronParser.new(v)
|
19
|
+
hash['next'] = hash['cron'].next(Time.now)
|
20
|
+
@list << hash
|
21
|
+
@Bus.log( "Cron set for, #{hash['name']}, #{v}" )
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def Run
|
27
|
+
now = Time.now
|
28
|
+
@list.map! do |v|
|
29
|
+
if now > v['next'] then
|
30
|
+
@Bus.log "CronManager.Send, #{v['name']}", true
|
31
|
+
@Bus.Send( RServiceBus.createAnonymousClass( v['name'] ) )
|
32
|
+
v['next'] = v['cron'].next(now)
|
33
|
+
end
|
34
|
+
return v
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
data/lib/rservicebus/Host.rb
CHANGED
@@ -51,13 +51,20 @@ module RServiceBus
|
|
51
51
|
return self;
|
52
52
|
end
|
53
53
|
|
54
|
-
#Thin veneer for Configuring
|
54
|
+
#Thin veneer for Configuring state
|
55
55
|
#
|
56
56
|
def configureStateManager
|
57
57
|
@stateManager = StateManager.new
|
58
58
|
return self;
|
59
59
|
end
|
60
60
|
|
61
|
+
#Thin veneer for Configuring Cron
|
62
|
+
#
|
63
|
+
def configureCronManager
|
64
|
+
@cronManager = CronManager.new( self )
|
65
|
+
return self;
|
66
|
+
end
|
67
|
+
|
61
68
|
|
62
69
|
|
63
70
|
#Thin veneer for Configuring external resources
|
@@ -158,6 +165,7 @@ module RServiceBus
|
|
158
165
|
.loadLibs()
|
159
166
|
.configureAppResource()
|
160
167
|
.configureStateManager()
|
168
|
+
.configureCronManager()
|
161
169
|
.configureMonitors()
|
162
170
|
.loadHandlers()
|
163
171
|
.connectToMq()
|
@@ -287,14 +295,16 @@ module RServiceBus
|
|
287
295
|
#This exception is just saying there are no messages to process
|
288
296
|
statOutputCountdown = 0
|
289
297
|
@queueForMsgsToBeSentOnComplete = Array.new
|
290
|
-
|
291
298
|
@monitors.each do |o|
|
292
299
|
o.Look
|
293
300
|
end
|
294
|
-
|
295
301
|
self.sendQueuedMsgs
|
296
302
|
@queueForMsgsToBeSentOnComplete = nil
|
297
303
|
|
304
|
+
@queueForMsgsToBeSentOnComplete = Array.new
|
305
|
+
@cronManager.Run
|
306
|
+
self.sendQueuedMsgs
|
307
|
+
@queueForMsgsToBeSentOnComplete = nil
|
298
308
|
|
299
309
|
rescue Exception => e
|
300
310
|
if e.message == "SIGTERM" then
|
data/lib/rservicebus.rb
CHANGED
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.
|
4
|
+
version: 0.1.31
|
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-
|
12
|
+
date: 2013-10-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: uuidtools
|
16
|
-
requirement: &
|
16
|
+
requirement: &70156714762740 !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: *
|
24
|
+
version_requirements: *70156714762740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70156714787740 !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: *
|
35
|
+
version_requirements: *70156714787740
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: beanstalk-client
|
38
|
-
requirement: &
|
38
|
+
requirement: &70156714782020 !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: *
|
46
|
+
version_requirements: *70156714782020
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: fluiddb
|
49
|
-
requirement: &
|
49
|
+
requirement: &70156714797120 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,18 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70156714797120
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: parse-cron
|
60
|
+
requirement: &70156714793580 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70156714793580
|
58
69
|
description: A Ruby interpretation of NServiceBus
|
59
70
|
email: guy@guyirvine.com
|
60
71
|
executables:
|
@@ -89,6 +100,7 @@ files:
|
|
89
100
|
- lib/rservicebus/ConfigureMonitor.rb
|
90
101
|
- lib/rservicebus/ConfigureMQ.rb
|
91
102
|
- lib/rservicebus/ConfigureSubscriptionStorage.rb
|
103
|
+
- lib/rservicebus/CronManager.rb
|
92
104
|
- lib/rservicebus/EndpointMapping.rb
|
93
105
|
- lib/rservicebus/ErrorMessage.rb
|
94
106
|
- lib/rservicebus/HandlerLoader.rb
|