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.
@@ -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'
@@ -89,7 +89,13 @@ NAME
89
89
 
90
90
  SYNOPSIS
91
91
 
92
- rq (queue | export RQ_Q=q) mode [mode_args]* [options]*
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
- URIS
108
+ DESCRIPTION
103
109
 
104
- #{ WEBSITE } - main website
105
- http://www.linuxjournal.com/article/7922
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
- and
108
-
109
- http://rubyforge.org/projects/codeforpeople/
110
- http://codeforpeople.com/lib/ruby/rq/
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
- LICENSE
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
- rq is distributed under the BSD license, see the ./LICENSE file
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
- gems (per node):
121
-
122
- gem >=3.4.3:
194
+ gem >=#{VERSION}:
123
195
 
124
- - install sqlite2 (Debian apt-get install libsqlite0-dev)
125
- - wget http://rubyforge.org/frs/download.php/1070/sqlite-1.3.1.gem
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
- gem install rq-ruby1.8 (see top of page)
1239
+ gem1.8 install rq-ruby1.8 (see top of page)
1194
1240
 
1195
1241
  TEST
1196
1242
 
@@ -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.3"
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-21}
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: 17
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 3
8
8
  - 4
9
- - 3
10
- version: 3.4.3
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-21 00:00:00 +02:00
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