perfectsched 0.8.8 → 0.8.9

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c45e7a543642bacc55c6d17146aa817598c51395
4
+ data.tar.gz: c5c988003798ad2553dd30e34472af7dca6e79dc
5
+ SHA512:
6
+ metadata.gz: d2dc9e2bb0f41d4c253cf55da6ff1100e84775ae8ed019a90b025a529257ce9e70efa14e179e91b0b0174f32055f7cef0fece33712d6dfdf5eb5e0571aa23950
7
+ data.tar.gz: 23b1f8d84cedb253bbc299c5a46fe26f98f22f489339f98e2f0bc3cebecdaf1b2c79f3b297b87bce365aa77ca088719f2a041544160a8a325f0143207bbb4dfb
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0.0
4
+ - 2.1.6
5
+ - 2.2.2
6
+ - ruby-head
7
+
8
+ script: "bundle exec rake spec"
data/ChangeLog CHANGED
@@ -1,4 +1,8 @@
1
1
 
2
+ == 2015-06-03 version 0.8.9
3
+
4
+ * Upgraded perfectqueue 0.8.41
5
+
2
6
  == 2014-10-08 version 0.8.8
3
7
 
4
8
  * Upgraded perfectqueue 0.8.40
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # PerfectSched
2
2
 
3
+ [![Build Status](https://travis-ci.org/treasure-data/perfectsched.svg?branch=master)](https://travis-ci.org/treasure-data/perfectsched)
4
+
3
5
  PerfectSched is a highly available distributed cron built on top of RDBMS.
4
6
 
5
7
  It provides at-least-once semantics; Even if a worker node fails during process a task, the task is retried by another worker.
data/lib/perfectsched.rb CHANGED
@@ -35,7 +35,10 @@ module PerfectSched
35
35
  :ScheduleWithMetadata => 'perfectsched/schedule',
36
36
  :ScheduleMetadata => 'perfectsched/schedule_metadata',
37
37
  :ScheduleMetadataAccessors => 'perfectsched/schedule_metadata',
38
+ # SignalQueue is obsolete because it does not run with ruby >= 2.0.0.
39
+ # See ddbf04c9 and use SignalThread instead.
38
40
  :SignalQueue => 'perfectsched/signal_queue',
41
+ :SignalThread => 'perfectsched/signal_thread',
39
42
  :Task => 'perfectsched/task',
40
43
  :Worker => 'perfectsched/worker',
41
44
  :VERSION => 'perfectsched/version',
@@ -18,6 +18,7 @@
18
18
 
19
19
  module PerfectSched
20
20
 
21
+ # SignalQueue is obsolete because it does not run with ruby >= 2.0.0.
21
22
  require 'perfectqueue/signal_queue'
22
23
  SignalQueue = PerfectQueue::SignalQueue
23
24
 
@@ -0,0 +1,25 @@
1
+ #
2
+ # PerfectSched
3
+ #
4
+ # Copyright (C) 2012 FURUHASHI Sadayuki
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ module PerfectSched
20
+
21
+ require 'perfectqueue/signal_thread'
22
+ SignalThread = PerfectQueue::SignalThread
23
+
24
+ end
25
+
@@ -1,3 +1,3 @@
1
1
  module PerfectSched
2
- VERSION = "0.8.8"
2
+ VERSION = "0.8.9"
3
3
  end
@@ -46,7 +46,7 @@ module PerfectSched
46
46
  @engine.shutdown
47
47
  end
48
48
  ensure
49
- @sig.shutdown
49
+ @sig.stop
50
50
  end
51
51
  return nil
52
52
  rescue
@@ -130,28 +130,29 @@ module PerfectSched
130
130
  end
131
131
 
132
132
  def install_signal_handlers(&block)
133
- SignalQueue.start do |sig|
134
- sig.trap :TERM do
135
- stop
133
+ s = self
134
+ SignalThread.new do |st|
135
+ st.trap :TERM do
136
+ s.stop
136
137
  end
137
- sig.trap :INT do
138
- stop
138
+ st.trap :INT do
139
+ s.stop
139
140
  end
140
141
 
141
- sig.trap :QUIT do
142
- stop
142
+ st.trap :QUIT do
143
+ s.stop
143
144
  end
144
145
 
145
- sig.trap :USR1 do
146
- restart
146
+ st.trap :USR1 do
147
+ s.restart
147
148
  end
148
149
 
149
- sig.trap :HUP do
150
- restart
150
+ st.trap :HUP do
151
+ s.restart
151
152
  end
152
153
 
153
- sig.trap :USR2 do
154
- logrotated
154
+ st.trap :USR2 do
155
+ s.logrotated
155
156
  end
156
157
  end
157
158
  end
data/perfectsched.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.add_dependency "cron-spec", [">= 0.1.2", "<= 0.1.2"]
20
20
  gem.add_dependency "sequel", "~> 3.48.0"
21
21
  gem.add_dependency "tzinfo", "~> 0.3.29"
22
- gem.add_dependency "perfectqueue", "~> 0.8.40"
22
+ gem.add_dependency "perfectqueue", "~> 0.8.41"
23
23
  gem.add_development_dependency "rake", "~> 0.9.2"
24
24
  gem.add_development_dependency "rspec", "~> 2.10.0"
25
25
  gem.add_development_dependency "simplecov", "~> 0.5.4"
data/spec/worker_spec.rb CHANGED
@@ -47,5 +47,12 @@ describe Worker do
47
47
  sleep 2
48
48
  end
49
49
 
50
+ it 'term signal' do
51
+ sleep 1
52
+ Process.kill(:TERM, Process.pid)
53
+ puts "finish expected..."
54
+ @thread.join
55
+ end
56
+
50
57
  end
51
58
 
metadata CHANGED
@@ -1,148 +1,131 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perfectsched
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
5
- prerelease:
4
+ version: 0.8.9
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sadayuki Furuhashi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-10-09 00:00:00.000000000 Z
11
+ date: 2015-06-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: cron-spec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.1.2
22
- - - <=
20
+ - - "<="
23
21
  - !ruby/object:Gem::Version
24
22
  version: 0.1.2
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ! '>='
27
+ - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: 0.1.2
33
- - - <=
30
+ - - "<="
34
31
  - !ruby/object:Gem::Version
35
32
  version: 0.1.2
36
33
  - !ruby/object:Gem::Dependency
37
34
  name: sequel
38
35
  requirement: !ruby/object:Gem::Requirement
39
- none: false
40
36
  requirements:
41
- - - ~>
37
+ - - "~>"
42
38
  - !ruby/object:Gem::Version
43
39
  version: 3.48.0
44
40
  type: :runtime
45
41
  prerelease: false
46
42
  version_requirements: !ruby/object:Gem::Requirement
47
- none: false
48
43
  requirements:
49
- - - ~>
44
+ - - "~>"
50
45
  - !ruby/object:Gem::Version
51
46
  version: 3.48.0
52
47
  - !ruby/object:Gem::Dependency
53
48
  name: tzinfo
54
49
  requirement: !ruby/object:Gem::Requirement
55
- none: false
56
50
  requirements:
57
- - - ~>
51
+ - - "~>"
58
52
  - !ruby/object:Gem::Version
59
53
  version: 0.3.29
60
54
  type: :runtime
61
55
  prerelease: false
62
56
  version_requirements: !ruby/object:Gem::Requirement
63
- none: false
64
57
  requirements:
65
- - - ~>
58
+ - - "~>"
66
59
  - !ruby/object:Gem::Version
67
60
  version: 0.3.29
68
61
  - !ruby/object:Gem::Dependency
69
62
  name: perfectqueue
70
63
  requirement: !ruby/object:Gem::Requirement
71
- none: false
72
64
  requirements:
73
- - - ~>
65
+ - - "~>"
74
66
  - !ruby/object:Gem::Version
75
- version: 0.8.40
67
+ version: 0.8.41
76
68
  type: :runtime
77
69
  prerelease: false
78
70
  version_requirements: !ruby/object:Gem::Requirement
79
- none: false
80
71
  requirements:
81
- - - ~>
72
+ - - "~>"
82
73
  - !ruby/object:Gem::Version
83
- version: 0.8.40
74
+ version: 0.8.41
84
75
  - !ruby/object:Gem::Dependency
85
76
  name: rake
86
77
  requirement: !ruby/object:Gem::Requirement
87
- none: false
88
78
  requirements:
89
- - - ~>
79
+ - - "~>"
90
80
  - !ruby/object:Gem::Version
91
81
  version: 0.9.2
92
82
  type: :development
93
83
  prerelease: false
94
84
  version_requirements: !ruby/object:Gem::Requirement
95
- none: false
96
85
  requirements:
97
- - - ~>
86
+ - - "~>"
98
87
  - !ruby/object:Gem::Version
99
88
  version: 0.9.2
100
89
  - !ruby/object:Gem::Dependency
101
90
  name: rspec
102
91
  requirement: !ruby/object:Gem::Requirement
103
- none: false
104
92
  requirements:
105
- - - ~>
93
+ - - "~>"
106
94
  - !ruby/object:Gem::Version
107
95
  version: 2.10.0
108
96
  type: :development
109
97
  prerelease: false
110
98
  version_requirements: !ruby/object:Gem::Requirement
111
- none: false
112
99
  requirements:
113
- - - ~>
100
+ - - "~>"
114
101
  - !ruby/object:Gem::Version
115
102
  version: 2.10.0
116
103
  - !ruby/object:Gem::Dependency
117
104
  name: simplecov
118
105
  requirement: !ruby/object:Gem::Requirement
119
- none: false
120
106
  requirements:
121
- - - ~>
107
+ - - "~>"
122
108
  - !ruby/object:Gem::Version
123
109
  version: 0.5.4
124
110
  type: :development
125
111
  prerelease: false
126
112
  version_requirements: !ruby/object:Gem::Requirement
127
- none: false
128
113
  requirements:
129
- - - ~>
114
+ - - "~>"
130
115
  - !ruby/object:Gem::Version
131
116
  version: 0.5.4
132
117
  - !ruby/object:Gem::Dependency
133
118
  name: sqlite3
134
119
  requirement: !ruby/object:Gem::Requirement
135
- none: false
136
120
  requirements:
137
- - - ~>
121
+ - - "~>"
138
122
  - !ruby/object:Gem::Version
139
123
  version: 1.3.3
140
124
  type: :development
141
125
  prerelease: false
142
126
  version_requirements: !ruby/object:Gem::Requirement
143
- none: false
144
127
  requirements:
145
- - - ~>
128
+ - - "~>"
146
129
  - !ruby/object:Gem::Version
147
130
  version: 1.3.3
148
131
  description: Highly available distributed cron built on RDBMS
@@ -152,7 +135,8 @@ executables:
152
135
  extensions: []
153
136
  extra_rdoc_files: []
154
137
  files:
155
- - .gitignore
138
+ - ".gitignore"
139
+ - ".travis.yml"
156
140
  - ChangeLog
157
141
  - Gemfile
158
142
  - README.md
@@ -178,6 +162,7 @@ files:
178
162
  - lib/perfectsched/schedule_collection.rb
179
163
  - lib/perfectsched/schedule_metadata.rb
180
164
  - lib/perfectsched/signal_queue.rb
165
+ - lib/perfectsched/signal_thread.rb
181
166
  - lib/perfectsched/task.rb
182
167
  - lib/perfectsched/version.rb
183
168
  - lib/perfectsched/worker.rb
@@ -188,36 +173,30 @@ files:
188
173
  - spec/worker_spec.rb
189
174
  homepage: https://github.com/treasure-data/perfectsched
190
175
  licenses: []
176
+ metadata: {}
191
177
  post_install_message:
192
178
  rdoc_options: []
193
179
  require_paths:
194
180
  - lib
195
181
  required_ruby_version: !ruby/object:Gem::Requirement
196
- none: false
197
182
  requirements:
198
- - - ! '>='
183
+ - - ">="
199
184
  - !ruby/object:Gem::Version
200
185
  version: '0'
201
- segments:
202
- - 0
203
- hash: -336495823616886649
204
186
  required_rubygems_version: !ruby/object:Gem::Requirement
205
- none: false
206
187
  requirements:
207
- - - ! '>='
188
+ - - ">="
208
189
  - !ruby/object:Gem::Version
209
190
  version: '0'
210
- segments:
211
- - 0
212
- hash: -336495823616886649
213
191
  requirements: []
214
192
  rubyforge_project:
215
- rubygems_version: 1.8.24
193
+ rubygems_version: 2.4.5
216
194
  signing_key:
217
- specification_version: 3
195
+ specification_version: 4
218
196
  summary: Highly available distributed cron built on RDBMS
219
197
  test_files:
220
198
  - spec/rdb_compat_backend_spec.rb
221
199
  - spec/schedule_collection_spec.rb
222
200
  - spec/spec_helper.rb
223
201
  - spec/worker_spec.rb
202
+ has_rdoc: false