rq-ruby1.8 3.4.3 → 3.4.5
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/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
|