perfectsched 0.7.15 → 0.7.16

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/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ == 2014-10-08 version 0.7.16
2
+
3
+ * Upgraded perfectqueue v0.7.31
4
+ * Upgraded sequel v3.48.0
5
+
6
+
1
7
  == 2014-06-10 version 0.7.15
2
8
 
3
9
  * RDBBackend: fixed modify_checked to update timeout and next_time
@@ -1,5 +1,5 @@
1
1
  module PerfectSched
2
2
 
3
- VERSION = '0.7.15'
3
+ VERSION = '0.7.16'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perfectsched
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.15
4
+ version: 0.7.16
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Sadayuki Furuhashi
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-06-11 00:00:00.000000000 Z
12
+ date: 2014-10-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: cron-spec
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - <=
18
20
  - !ruby/object:Gem::Version
@@ -23,6 +25,7 @@ dependencies:
23
25
  type: :runtime
24
26
  prerelease: false
25
27
  version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
26
29
  requirements:
27
30
  - - <=
28
31
  - !ruby/object:Gem::Version
@@ -33,34 +36,39 @@ dependencies:
33
36
  - !ruby/object:Gem::Dependency
34
37
  name: sequel
35
38
  requirement: !ruby/object:Gem::Requirement
39
+ none: false
36
40
  requirements:
37
41
  - - ~>
38
42
  - !ruby/object:Gem::Version
39
- version: 3.26.0
43
+ version: 3.48.0
40
44
  type: :runtime
41
45
  prerelease: false
42
46
  version_requirements: !ruby/object:Gem::Requirement
47
+ none: false
43
48
  requirements:
44
49
  - - ~>
45
50
  - !ruby/object:Gem::Version
46
- version: 3.26.0
51
+ version: 3.48.0
47
52
  - !ruby/object:Gem::Dependency
48
53
  name: perfectqueue
49
54
  requirement: !ruby/object:Gem::Requirement
55
+ none: false
50
56
  requirements:
51
57
  - - ~>
52
58
  - !ruby/object:Gem::Version
53
- version: 0.7.0
59
+ version: 0.7.31
54
60
  type: :runtime
55
61
  prerelease: false
56
62
  version_requirements: !ruby/object:Gem::Requirement
63
+ none: false
57
64
  requirements:
58
65
  - - ~>
59
66
  - !ruby/object:Gem::Version
60
- version: 0.7.0
67
+ version: 0.7.31
61
68
  - !ruby/object:Gem::Dependency
62
69
  name: tzinfo
63
70
  requirement: !ruby/object:Gem::Requirement
71
+ none: false
64
72
  requirements:
65
73
  - - ~>
66
74
  - !ruby/object:Gem::Version
@@ -68,6 +76,7 @@ dependencies:
68
76
  type: :runtime
69
77
  prerelease: false
70
78
  version_requirements: !ruby/object:Gem::Requirement
79
+ none: false
71
80
  requirements:
72
81
  - - ~>
73
82
  - !ruby/object:Gem::Version
@@ -79,12 +88,8 @@ executables:
79
88
  extensions: []
80
89
  extra_rdoc_files:
81
90
  - ChangeLog
82
- - README.md.html
83
91
  - README.rdoc
84
92
  files:
85
- - ChangeLog
86
- - README.md.html
87
- - README.rdoc
88
93
  - bin/perfectsched
89
94
  - lib/perfectsched.rb
90
95
  - lib/perfectsched/backend.rb
@@ -95,30 +100,33 @@ files:
95
100
  - lib/perfectsched/croncalc.rb
96
101
  - lib/perfectsched/engine.rb
97
102
  - lib/perfectsched/version.rb
103
+ - ChangeLog
104
+ - README.rdoc
98
105
  - test/backend_test.rb
99
106
  - test/test_helper.rb
100
107
  homepage: https://github.com/treasure-data/perfectsched
101
108
  licenses: []
102
- metadata: {}
103
109
  post_install_message:
104
110
  rdoc_options: []
105
111
  require_paths:
106
112
  - lib
107
113
  required_ruby_version: !ruby/object:Gem::Requirement
114
+ none: false
108
115
  requirements:
109
116
  - - ! '>='
110
117
  - !ruby/object:Gem::Version
111
118
  version: '0'
112
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
113
121
  requirements:
114
122
  - - ! '>='
115
123
  - !ruby/object:Gem::Version
116
124
  version: '0'
117
125
  requirements: []
118
126
  rubyforge_project:
119
- rubygems_version: 2.2.2
127
+ rubygems_version: 1.8.24
120
128
  signing_key:
121
- specification_version: 4
129
+ specification_version: 3
122
130
  summary: Highly available distributed cron built on RDBMS or SimpleDB
123
131
  test_files:
124
132
  - test/backend_test.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjkxNTY3NTA4Yjg0YTQ1ZmVlNTFkYjE2NDhlNTIyNmFhZjAyODlhNA==
5
- data.tar.gz: !binary |-
6
- NGZkMGVmMTVhMTQwMDFjYTFmMGE2ZTZmYjRjMzM1YzJiNThmMjZlNg==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- MzFkYWI1MTc5ODllY2ZkMjZlYTg5MGVmOGU1M2ZhMGM3MTQxMWJiYzFhNDJh
10
- ZWNjMTBjMzY1MzVkMTM1ZDQyYThmMWUwNTkyYTNlZjRmMGNjOThmNDZiOWFm
11
- NmQwMWZkYjg2Zjk0NzU3ZjAzOTcwMGM0ZjBhMWFmOTZiNzVlZjY=
12
- data.tar.gz: !binary |-
13
- MGZjMzRlNDkzYWZkMmFjMWFkMzRjMWNjNDc0Y2Y0NzY5YTg4ZDQ0OTA2YzYw
14
- ZTMyZTRhODliMmM4ODc5YjRiYTNjNDE1MjJhN2EyMzRhNTQ4NWVmODUxMmRi
15
- Yjc5NDhiN2ZkZTk4OTYxYWZmMWI2YzllMGY3MmE5YjhkZDFkZDQ=
data/README.md.html DELETED
@@ -1,153 +0,0 @@
1
-
2
- <html>
3
- <head><title>-</title></head>
4
- <body>
5
- <h1>PerfectSched</h1>
6
-
7
- <p>PerfectSched is a highly available distributed cron built on top of RDBMS.</p>
8
-
9
- <p>It provides at-least-once semantics; Even if a worker node fails during process a task, the task is retried by another worker.</p>
10
-
11
- <p>PerfectSched also guarantees that only one worker server processes a task if the server is alive.</p>
12
-
13
- <p>All you have to consider is implementing idempotent worker programs. It's recommended to use <a href="https://github.com/treasure-data/perfectqueue">PerfectQueue</a> with PerfectSched.</p>
14
-
15
- <h2>API overview</h2>
16
-
17
- <p>```ruby</p>
18
-
19
- <h1>open a schedule collection</h1>
20
-
21
- <p>PerfectSched.open(config, &amp;block) #=> #<ScheduleCollection></p>
22
-
23
- <h1>add a schedule</h1>
24
-
25
- <p>ScheduleCollection#add(task_id, type, options)</p>
26
-
27
- <h1>poll a scheduled task</h1>
28
-
29
- <h1>(you don't have to use this method directly. see following sections)</h1>
30
-
31
- <p>ScheduleCollection#poll #=> #<Task></p>
32
-
33
- <h1>get data associated with a task</h1>
34
-
35
- <p>Task#data #=> #<Hash></p>
36
-
37
- <h1>finish a task</h1>
38
-
39
- <p>Task#finish!</p>
40
-
41
- <h1>retry a task</h1>
42
-
43
- <p>Task#retry!
44
- ```</p>
45
-
46
- <p>Example:</p>
47
-
48
- <p>```ruby</p>
49
-
50
- <h1>submit a task</h1>
51
-
52
- <p>PerfectSched.open(config) {|sc|
53
- data = {'key'=>"value"}
54
- options = {</p>
55
-
56
- <pre><code>:cron =&gt; '0 * * * *',
57
- :delay =&gt; 30,
58
- :timezone =&gt; 'Asia/Tokyo',
59
- :next_time =&gt; Time.parse('2013-01-01 00:00:00 +0900').to_i,
60
- :data =&gt; data,
61
- </code></pre>
62
-
63
- <p> }
64
- sc.submit("sched-id", "type1", options)
65
- }
66
- ```</p>
67
-
68
- <h2>Writing a worker application</h2>
69
-
70
- <h3>1. Implement PerfectSched::Application::Base</h3>
71
-
72
- <p>```ruby
73
- class TestHandler &lt; PerfectSched::Application::Base
74
- # implement run method
75
- def run</p>
76
-
77
- <pre><code># do something ...
78
- puts "acquired task: #{task.inspect}"
79
-
80
- # call task.finish!, task.retry! or task.release!
81
- task.finish!
82
- </code></pre>
83
-
84
- <p> end
85
- end</p>
86
-
87
- <h3>2. Implement PerfectSched::Application::Dispatch</h3>
88
-
89
- <p><code>ruby
90
- class Dispatch &lt; PerfectSched::Application::Dispatch
91
- # describe routing
92
- route "type1" =&gt; TestHandler
93
- route /^regexp-.*$/ =&gt; :TestHandler # String or Regexp =&gt; Class or Symbol
94
- end
95
- </code></p>
96
-
97
- <h3>3. Run the worker</h3>
98
-
99
- <p>In a launcher script or rake file:</p>
100
-
101
- <p>```</p>
102
-
103
- <h1>run PerfectSched::Worker with the dispatcher</h1>
104
-
105
- <p>system('perfectsched run -I. -rapp/schedules/dispatch Dispatch')
106
- ```</p>
107
-
108
- <p>or:</p>
109
-
110
- <p><code>ruby
111
- require 'app/schedules/dispatch'
112
- PerfectSched::Worker.run(Dispatch) {
113
- # this method is called when the worker process is restarted
114
- raw = File.read('config/perfectsched.yml')
115
- yml = YAJL.load(raw)
116
- yml[ENV['RAILS_ENV'] || 'development']
117
- }
118
- </code></p>
119
-
120
- <h3>Signal handlers</h3>
121
-
122
- <ul>
123
- <li><em>TERM,INT,QUIT:</em> shutdown</li>
124
- <li><em>USR1,HUP:</em> restart</li>
125
- <li><em>USR2:</em> reopen log files</li>
126
- </ul>
127
-
128
-
129
- <h2>Configuration</h2>
130
-
131
- <ul>
132
- <li><em>type:</em> backend type (required; see following sections)</li>
133
- <li><em>log:</em> log file path (default: use stderr)</li>
134
- <li><em>poll_interval:</em> interval to poll tasks in seconds (default: 1.0 sec)</li>
135
- <li><em>timezone:</em> default timezone (default: 'UTC')</li>
136
- <li><em>alive_time:</em> duration to continue a heartbeat request (default: 300 sec)</li>
137
- <li><em>retry_wait:</em> duration to retry a retried task (default: 300 sec)</li>
138
- </ul>
139
-
140
-
141
- <h2>Backend types</h2>
142
-
143
- <h3>rdb_compat</h3>
144
-
145
- <p>additional configuration:</p>
146
-
147
- <ul>
148
- <li><strong>url:</strong> URL to the RDBMS (example: 'mysql://user:password@host:port/database')</li>
149
- <li><strong>table:</strong> name of the table to use</li>
150
- </ul>
151
-
152
- </body>
153
- </html>