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.
@@ -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