rq-ruby1.8 3.4.3 → 3.4.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -9
- data/INSTALL +57 -62
- data/README +99 -53
- data/VERSION +1 -1
- data/bin/rq +1 -1
- data/ext/extconf.rb +7 -0
- data/ext/sqlite.c +862 -0
- data/lib/rq/sqlite.rb +5 -0
- data/lib/rq/usage.rb +98 -52
- data/rq-ruby1.8.gemspec +5 -2
- metadata +8 -6
data/lib/rq/sqlite.rb
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
# modify it under the terms of the BSD License as published by the Free
|
9
9
|
# Software Foundation. See also the rq LICENSE file.
|
10
10
|
#
|
11
|
+
# The license was changed for older sqlite-1.3.1 in agreement with Jamis Buck.
|
12
|
+
#
|
11
13
|
# The SQLite/Ruby Interface is distributed in the hope that it will be useful,
|
12
14
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
15
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
@@ -16,6 +18,9 @@
|
|
16
18
|
#
|
17
19
|
# Author: Jamis Buck (jamis@jamisbuck.org)
|
18
20
|
# --------------------------------------------------------------------------
|
21
|
+
#
|
22
|
+
# NOTE: rq still users the older sqlite2 engine and bindings. This will
|
23
|
+
# change.
|
19
24
|
|
20
25
|
require '_sqlite'
|
21
26
|
require 'time'
|
data/lib/rq/usage.rb
CHANGED
@@ -89,7 +89,13 @@ NAME
|
|
89
89
|
|
90
90
|
SYNOPSIS
|
91
91
|
|
92
|
-
rq
|
92
|
+
rq queue mode [mode_args]* [options]*
|
93
|
+
|
94
|
+
ruby queue (rq) is a zero-admin zero-configuration tool used to create
|
95
|
+
instant unix clusters on a multi-core machine, and/or multiple nodes in a
|
96
|
+
network, or in the Cloud. rq requires only a centrally mounted directory
|
97
|
+
(e.g. NFS) in order to manage a simple sqlite database as a distributed
|
98
|
+
priority work queue. See QUICK START below.
|
93
99
|
|
94
100
|
usage_banner
|
95
101
|
#--}}}
|
@@ -99,35 +105,96 @@ usage_banner
|
|
99
105
|
#--{{{
|
100
106
|
<<-usage
|
101
107
|
#{ USAGE_BANNER }
|
102
|
-
|
108
|
+
DESCRIPTION
|
103
109
|
|
104
|
-
|
105
|
-
|
110
|
+
ruby queue (rq) is a zero-admin zero-configuration tool used to create
|
111
|
+
instant unix clusters. the simple design allows researchers with minimal unix
|
112
|
+
experience to install and configure, in only a few minutes and without root
|
113
|
+
privileges, a robust unix cluster capable of distributing processes to many
|
114
|
+
nodes - bringing dozens of powerful cpus to their knees with a single blow.
|
115
|
+
clearly this software should be kept out of the hands of free radicals, seti
|
116
|
+
enthusiasts, and one mr. j safran.
|
106
117
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
118
|
+
the central concept of rq is that n nodes work in isolation to pull jobs
|
119
|
+
from an centrally mounted nfs priority work queue in a synchronized fashion.
|
120
|
+
the nodes have absolutely no knowledge of each other and all communication
|
121
|
+
is done via the queue meaning that, so long as the queue is available via
|
122
|
+
nfs and a single node is running jobs from it, the system will continue to
|
123
|
+
process jobs. there is no centralized process whatsoever - all nodes work
|
124
|
+
to take jobs from the queue and run them as fast as possible. this creates
|
125
|
+
a system which load balances automatically and is robust in face of node
|
126
|
+
failures.
|
111
127
|
|
112
|
-
|
128
|
+
although the rq system is simple in it's design it features powerful
|
129
|
+
functionality such as priority management, predicate and sql query, compact
|
130
|
+
streaming command-line processing, programmable api, hot-backup, and
|
131
|
+
input/capture of the stdin/stdout/stderr io streams of remote jobs. to date
|
132
|
+
rq has had no reported runtime failures and is in operation at
|
133
|
+
dozens of research centers around the world. while rq is written in
|
134
|
+
the Ruby programming language, there is no Ruby programming
|
135
|
+
involved in using rq.
|
113
136
|
|
114
|
-
|
137
|
+
QUICK START
|
138
|
+
|
139
|
+
install rq using rubygems
|
140
|
+
|
141
|
+
gem1.8 install rq-ruby1.8
|
142
|
+
ln -sf `gem1.8 contents rq-ruby1.8|grep bin/rq$` /usr/local/bin/rq
|
143
|
+
rq --help
|
144
|
+
|
145
|
+
set up a directory for the queue - this can be a local, or an NFS/sshfs
|
146
|
+
mounted drive:
|
147
|
+
|
148
|
+
rq dir create
|
149
|
+
|
150
|
+
on every node create a queue runner, specifying the number of cores (here 8)
|
151
|
+
|
152
|
+
rq dir feed --daemon --log=rq.log --max_feed=8
|
153
|
+
|
154
|
+
submit two jobs - shell style
|
155
|
+
|
156
|
+
rq dir submit 'sleep 10'
|
157
|
+
rq dir submit 'sleep 9'
|
158
|
+
|
159
|
+
check status
|
160
|
+
|
161
|
+
rq dir status
|
162
|
+
|
163
|
+
shows
|
164
|
+
|
165
|
+
---
|
166
|
+
jobs:
|
167
|
+
pending: 0
|
168
|
+
holding: 0
|
169
|
+
running: 2
|
170
|
+
finished: 0
|
171
|
+
dead: 0
|
172
|
+
total: 2
|
173
|
+
temporal:
|
174
|
+
running:
|
175
|
+
min: {2: 00h00m03.49s}
|
176
|
+
max: {1: 00h00m03.60s}
|
177
|
+
performance:
|
178
|
+
avg_time_per_job: 00h00m00.00s
|
179
|
+
n_jobs_in_last_hrs:
|
180
|
+
1: 0
|
181
|
+
12: 0
|
182
|
+
24: 0
|
183
|
+
exit_status:
|
184
|
+
successes: 0
|
185
|
+
failures: 0
|
186
|
+
ok: 0
|
187
|
+
|
188
|
+
Now, that was easy!!
|
115
189
|
|
116
190
|
INSTALL
|
117
191
|
|
118
192
|
See the ./INSTALL file, but quickly
|
119
193
|
|
120
|
-
|
121
|
-
|
122
|
-
gem >=3.4.3:
|
194
|
+
gem >=#{VERSION}:
|
123
195
|
|
124
|
-
|
125
|
-
|
126
|
-
- gem1.8 install sqlite-1.3.1.gem
|
127
|
-
- gem1.8 install posixlock
|
128
|
-
- gem1.8 install arrayfields
|
129
|
-
- gem1.8 install lockfile
|
130
|
-
- gem1.8 install rq-ruby1.8 (or run from source)
|
196
|
+
- install sqlite2 (Debian apt-get install libsqlite0-dev)
|
197
|
+
- gem1.8 install rq-ruby1.8
|
131
198
|
|
132
199
|
Also available from http://bio4.dnsalias.net/download/gem/ruby1.8/
|
133
200
|
|
@@ -144,37 +211,6 @@ INSTALL
|
|
144
211
|
|
145
212
|
see ./INSTALL file for latest
|
146
213
|
|
147
|
-
DESCRIPTION
|
148
|
-
|
149
|
-
ruby queue (rq) is a zero-admin zero-configuration tool used to create instant
|
150
|
-
unix clusters. rq requires only a central nfs filesystem in order to manage a
|
151
|
-
simple sqlite database as a distributed priority work queue. this simple
|
152
|
-
design allows researchers with minimal unix experience to install and
|
153
|
-
configure, in only a few minutes and without root privileges, a robust unix
|
154
|
-
cluster capable of distributing processes to many nodes - bringing dozens of
|
155
|
-
powerful cpus to their knees with a single blow. clearly this software should
|
156
|
-
be kept out of the hands of free radicals, seti enthusiasts, and one mr. j
|
157
|
-
safran.
|
158
|
-
|
159
|
-
the central concept of rq is that n nodes work in isolation to pull jobs
|
160
|
-
from an centrally mounted nfs priority work queue in a synchronized fashion.
|
161
|
-
the nodes have absolutely no knowledge of each other and all communication
|
162
|
-
is done via the queue meaning that, so long as the queue is available via
|
163
|
-
nfs and a single node is running jobs from it, the system will continue to
|
164
|
-
process jobs. there is no centralized process whatsoever - all nodes work
|
165
|
-
to take jobs from the queue and run them as fast as possible. this creates
|
166
|
-
a system which load balances automatically and is robust in face of node
|
167
|
-
failures.
|
168
|
-
|
169
|
-
although the rq system is simple in it's design it features powerful
|
170
|
-
functionality such as priority management, predicate and sql query, compact
|
171
|
-
streaming command-line processing, programmable api, hot-backup, and
|
172
|
-
input/capture of the stdin/stdout/stderr io streams of remote jobs. to date
|
173
|
-
rq has had no reported runtime failures and is in operation at
|
174
|
-
dozens of research centers around the world. while rq is written in
|
175
|
-
the Ruby programming language, there is no Ruby programming
|
176
|
-
involved in using rq.
|
177
|
-
|
178
214
|
INVOCATION
|
179
215
|
|
180
216
|
the first argument to any rq command is the always the name of the queue
|
@@ -1178,6 +1214,16 @@ DIAGNOSTICS
|
|
1178
1214
|
success : $? == 0
|
1179
1215
|
failure : $? != 0
|
1180
1216
|
|
1217
|
+
URIS
|
1218
|
+
|
1219
|
+
#{ WEBSITE } - main website
|
1220
|
+
http://www.linuxjournal.com/article/7922
|
1221
|
+
http://rubyforge.org/projects/codeforpeople/ (original)
|
1222
|
+
|
1223
|
+
LICENSE
|
1224
|
+
|
1225
|
+
rq is distributed under the BSD license, see the ./LICENSE file
|
1226
|
+
|
1181
1227
|
CREDITS
|
1182
1228
|
|
1183
1229
|
- kim baugh : patient tester and design input
|
@@ -1190,7 +1236,7 @@ CREDITS
|
|
1190
1236
|
|
1191
1237
|
INSTALL
|
1192
1238
|
|
1193
|
-
|
1239
|
+
gem1.8 install rq-ruby1.8 (see top of page)
|
1194
1240
|
|
1195
1241
|
TEST
|
1196
1242
|
|
data/rq-ruby1.8.gemspec
CHANGED
@@ -5,14 +5,15 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rq-ruby1.8}
|
8
|
-
s.version = "3.4.
|
8
|
+
s.version = "3.4.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Pjotr Prins"]
|
12
|
-
s.date = %q{2011-07-
|
12
|
+
s.date = %q{2011-07-23}
|
13
13
|
s.description = %q{Zero configuration job scheduler for computer clusters}
|
14
14
|
s.email = %q{pjotr.public01@thebird.nl}
|
15
15
|
s.executables = ["rqmailer", "rq"]
|
16
|
+
s.extensions = ["ext/extconf.rb"]
|
16
17
|
s.extra_rdoc_files = [
|
17
18
|
"LICENSE",
|
18
19
|
"README",
|
@@ -32,6 +33,8 @@ Gem::Specification.new do |s|
|
|
32
33
|
"bin/rq",
|
33
34
|
"bin/rqmailer",
|
34
35
|
"example/a.rb",
|
36
|
+
"ext/extconf.rb",
|
37
|
+
"ext/sqlite.c",
|
35
38
|
"extconf.rb",
|
36
39
|
"gemspec.rb",
|
37
40
|
"install.rb",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rq-ruby1.8
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 3.4.
|
9
|
+
- 5
|
10
|
+
version: 3.4.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Pjotr Prins
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-07-
|
18
|
+
date: 2011-07-23 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -97,8 +97,8 @@ email: pjotr.public01@thebird.nl
|
|
97
97
|
executables:
|
98
98
|
- rqmailer
|
99
99
|
- rq
|
100
|
-
extensions:
|
101
|
-
|
100
|
+
extensions:
|
101
|
+
- ext/extconf.rb
|
102
102
|
extra_rdoc_files:
|
103
103
|
- LICENSE
|
104
104
|
- README
|
@@ -117,6 +117,8 @@ files:
|
|
117
117
|
- bin/rq
|
118
118
|
- bin/rqmailer
|
119
119
|
- example/a.rb
|
120
|
+
- ext/extconf.rb
|
121
|
+
- ext/sqlite.c
|
120
122
|
- extconf.rb
|
121
123
|
- gemspec.rb
|
122
124
|
- install.rb
|