dynarex_cron 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/dynarex_cron.rb +47 -27
- data.tar.gz.sig +0 -0
- metadata +59 -29
- metadata.gz.sig +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5717175fe5d5b23e62eeca4725d6e85e1d962ba2
|
4
|
+
data.tar.gz: 7ee846c6a9c17a72c8f1e590cecc9b6b3bca0c5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8deafaccb82911e8e3e40168fded8147ff4fd063205c457055f5f078adefc9b770d85b038df8810fd60471485cd5ce7adb8f959a6c66cc64c36b2494139182e5
|
7
|
+
data.tar.gz: 27114ae7285fcdbec494ac424e925d6e67cda017bb545aebedb614e6034a3520336f2aad327eabeaed99efc04b78d497bb185551b2bf73cdfdf0f0e6fba503dc
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/dynarex_cron.rb
CHANGED
@@ -17,7 +17,7 @@ class DynarexCron
|
|
17
17
|
#
|
18
18
|
def initialize(dynarex_file=nil, options={})
|
19
19
|
|
20
|
-
opt = {sps_address: 'sps', sps_port: '59000',
|
20
|
+
opt = {sps_address: 'sps', sps_port: '59000', \
|
21
21
|
log: nil, time_offset: 0}.merge options
|
22
22
|
@logger = Logger.new(opt[:log],'weekly') if opt[:log]
|
23
23
|
|
@@ -28,22 +28,17 @@ class DynarexCron
|
|
28
28
|
@cron_entries, @cron_events = [], []
|
29
29
|
|
30
30
|
@dynarex_file = dynarex_file
|
31
|
-
load_entries() if @dynarex_file
|
32
|
-
load_events() if @include_url
|
33
31
|
|
34
|
-
|
32
|
+
if @dynarex_file then
|
35
33
|
|
36
|
-
|
34
|
+
dynarex = load_doc dynarex_file
|
35
|
+
load_entries(dynarex)
|
36
|
+
end
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
DRb.start_service 'druby://:' + opt[:drb_port], self
|
38
|
+
load_events() if @include_url
|
39
|
+
|
40
|
+
@sps_address, @sps_port = opt[:sps_address], opt[:sps_port]
|
42
41
|
|
43
|
-
# wait for the DRb service to finish before exiting
|
44
|
-
DRb.thread.join
|
45
|
-
}
|
46
|
-
end
|
47
42
|
|
48
43
|
end
|
49
44
|
|
@@ -60,8 +55,16 @@ class DynarexCron
|
|
60
55
|
@ws = c.connect(params)
|
61
56
|
|
62
57
|
EM.add_periodic_timer(60) do
|
58
|
+
|
63
59
|
iterate @cron_entries
|
64
60
|
iterate @cron_events
|
61
|
+
|
62
|
+
if @dynarex_file.is_a? String then
|
63
|
+
|
64
|
+
buffer, _ = RXFHelper.read(@dynarex_file)
|
65
|
+
reload_entries buffer if @buffer != buffer
|
66
|
+
|
67
|
+
end
|
65
68
|
end
|
66
69
|
end
|
67
70
|
|
@@ -73,35 +76,46 @@ class DynarexCron
|
|
73
76
|
EM.stop_event_loop
|
74
77
|
end
|
75
78
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
79
|
+
private
|
80
|
+
|
81
|
+
def load_doc(dynarex_file)
|
82
|
+
|
83
|
+
if dynarex_file.is_a?(Dynarex) then
|
84
|
+
dynarex_file
|
85
|
+
else
|
86
|
+
@buffer, _ = RXFHelper.read(dynarex_file)
|
87
|
+
Dynarex.new @buffer
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
def load_entries(dynarex)
|
93
|
+
|
81
94
|
@include_url = dynarex.summary[:include]
|
82
95
|
@cron_entries = dynarex.to_h
|
83
96
|
@cron_entries.each do |h|
|
84
97
|
h[:cron] = ChronicCron.new(h[:expression], Time.now + @time_offset)
|
85
98
|
end
|
86
|
-
end
|
87
|
-
|
88
|
-
alias refresh_entries load_entries
|
99
|
+
end
|
89
100
|
|
90
101
|
def load_events()
|
91
102
|
|
92
103
|
de = DynarexEvents.new(@include_url)
|
93
104
|
@cron_events = de.to_a
|
94
|
-
end
|
95
|
-
|
96
|
-
alias refresh_events load_events
|
105
|
+
end
|
97
106
|
|
98
|
-
|
107
|
+
def log(s, method_name=:debug)
|
108
|
+
return unless @logger
|
109
|
+
@logger.method(method_name).call s
|
110
|
+
end
|
99
111
|
|
100
112
|
def iterate(cron_entries)
|
101
113
|
|
102
114
|
cron_entries.each do |h|
|
103
115
|
|
104
116
|
datetime = (Time.now + @time_offset).strftime(DF)
|
117
|
+
log "datetime: %s; crontime: %s" %
|
118
|
+
[datetime, h[:cron].to_time.strftime(DF)]
|
105
119
|
|
106
120
|
if h[:cron].to_time.strftime(DF) == datetime then
|
107
121
|
|
@@ -117,11 +131,17 @@ class DynarexCron
|
|
117
131
|
|
118
132
|
rescue
|
119
133
|
|
120
|
-
|
134
|
+
log h.inspect ' : ' + ($!)
|
121
135
|
end
|
122
136
|
|
123
137
|
end
|
124
138
|
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def reload_entries(buffer)
|
142
|
+
load_entries Dynarex.new(buffer)
|
143
|
+
@buffer = buffer
|
144
|
+
log 'crontab reloaded', :info
|
125
145
|
end
|
126
146
|
|
127
147
|
end
|
@@ -192,4 +212,4 @@ class DynarexEvents < DynarexCron
|
|
192
212
|
end
|
193
213
|
|
194
214
|
end
|
195
|
-
end
|
215
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynarex_cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -12,97 +12,127 @@ cert_chain:
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
|
14
14
|
YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
|
15
|
-
|
15
|
+
8ixkARkWAmV1MB4XDTE0MTEyNDE3NDY1NloXDTE1MTEyNDE3NDY1NlowSDESMBAG
|
16
16
|
A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
|
17
17
|
EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
ggEBAN+RJExLzsQFbxtOo8MBE3N/a6oZZ1MWH8DEcbuD/FCZKD/sf9nePt6mUN71
|
19
|
+
yHU/OXsr26hGtwEzMHuOoFZdwah67hIbI0/PlnH/3W8Ho1jVpxJ0PYGQNlpRWB9b
|
20
|
+
myxwdHOCc0Vr9yXCCsGJXOHVJowIlQI6bKQ3PMZU1wcaWloWVFVf6Ll2LIUJNied
|
21
|
+
Fx8w/Khz6e00meCXBY6P0LWse/bbEDS4hg6EAoPfqmw1LMk2YHnGvvetu9XiQWzr
|
22
|
+
j8x3jT6Nruk9209ibB23pHWNYPjfw6W+IW+VXG5hXqd1xEKrzqiGOOV2P/6q8wPQ
|
23
|
+
782Tm67WEY4Oq0TnYz5xy82Z7I8CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
|
24
|
+
DwQEAwIEsDAdBgNVHQ4EFgQUY336yXWSXPoICU2+r+DpzXRBQp8wJgYDVR0RBB8w
|
25
25
|
HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAtAHekYRZ
|
27
|
+
MjQ+dAhDWaMmoDjRskHrrCuLTxyj4br2Km6guyi9pCextPSnjO+mGQ21v3K6qCEL
|
28
|
+
rNO6QOnV1I2G7tRXcp4lj/lIkPdmkQCDeFriTF8HF216pbFbjhuNKc3E1Bks3UxD
|
29
|
+
mAyT/WgYZ0oMFhlXhGjnYN/pCl0+Jg/GpMq/QhpzLczrBdds4E8EiOUg1OvSauaH
|
30
|
+
McZceXPBBeJPivkAlUzWBmWsEO9kAXNKyrauouos4S7Novg5wsFfdzfokzPHCLhE
|
31
|
+
AYk47T0/8hx1QaR5nU5Db9LztjboHVugHlqfEKWwY2mURuQWP9iCCwiG3T1cC04z
|
32
|
+
WnpuryTBFz7cvg==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2014-11-24 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: dynarex
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.2'
|
40
43
|
- - ">="
|
41
44
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
45
|
+
version: 1.2.90
|
43
46
|
type: :runtime
|
44
47
|
prerelease: false
|
45
48
|
version_requirements: !ruby/object:Gem::Requirement
|
46
49
|
requirements:
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '1.2'
|
47
53
|
- - ">="
|
48
54
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
55
|
+
version: 1.2.90
|
50
56
|
- !ruby/object:Gem::Dependency
|
51
57
|
name: chronic_cron
|
52
58
|
requirement: !ruby/object:Gem::Requirement
|
53
59
|
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.2'
|
54
63
|
- - ">="
|
55
64
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
65
|
+
version: 0.2.33
|
57
66
|
type: :runtime
|
58
67
|
prerelease: false
|
59
68
|
version_requirements: !ruby/object:Gem::Requirement
|
60
69
|
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0.2'
|
61
73
|
- - ">="
|
62
74
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
75
|
+
version: 0.2.33
|
64
76
|
- !ruby/object:Gem::Dependency
|
65
77
|
name: websocket-eventmachine-client
|
66
78
|
requirement: !ruby/object:Gem::Requirement
|
67
79
|
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
68
83
|
- - ">="
|
69
84
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
85
|
+
version: 1.0.1
|
71
86
|
type: :runtime
|
72
87
|
prerelease: false
|
73
88
|
version_requirements: !ruby/object:Gem::Requirement
|
74
89
|
requirements:
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '1.0'
|
75
93
|
- - ">="
|
76
94
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
95
|
+
version: 1.0.1
|
78
96
|
- !ruby/object:Gem::Dependency
|
79
97
|
name: rscript
|
80
98
|
requirement: !ruby/object:Gem::Requirement
|
81
99
|
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.1'
|
82
103
|
- - ">="
|
83
104
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
105
|
+
version: 0.1.25
|
85
106
|
type: :runtime
|
86
107
|
prerelease: false
|
87
108
|
version_requirements: !ruby/object:Gem::Requirement
|
88
109
|
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0.1'
|
89
113
|
- - ">="
|
90
114
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
115
|
+
version: 0.1.25
|
92
116
|
- !ruby/object:Gem::Dependency
|
93
117
|
name: chronic_duration
|
94
118
|
requirement: !ruby/object:Gem::Requirement
|
95
119
|
requirements:
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0.10'
|
96
123
|
- - ">="
|
97
124
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
125
|
+
version: 0.10.4
|
99
126
|
type: :runtime
|
100
127
|
prerelease: false
|
101
128
|
version_requirements: !ruby/object:Gem::Requirement
|
102
129
|
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0.10'
|
103
133
|
- - ">="
|
104
134
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
135
|
+
version: 0.10.4
|
106
136
|
description:
|
107
137
|
email: james@r0bertson.co.uk
|
108
138
|
executables: []
|
@@ -122,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
152
|
requirements:
|
123
153
|
- - ">="
|
124
154
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
155
|
+
version: 2.1.2
|
126
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
157
|
requirements:
|
128
158
|
- - ">="
|
@@ -130,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
160
|
version: '0'
|
131
161
|
requirements: []
|
132
162
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
163
|
+
rubygems_version: 2.2.2
|
134
164
|
signing_key:
|
135
165
|
specification_version: 4
|
136
166
|
summary: dynarex_cron
|
metadata.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
�!P��&���sVC����*wq��V��^��R3i�9�L�"�zz:�Y�/���~��6��,�#l%͋:�l4��G�͏p.o�.��D�7?��!��5֫
|