dynarex_cron 0.3.5 → 0.4.0
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 +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֫
|