rq 0.1.7 → 3.0.0
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/INSTALL +21 -0
- data/README +752 -190
- data/TODO +18 -11
- data/TUTORIAL +230 -0
- data/all/install.rb +127 -0
- data/all/install.sh +165 -0
- data/all/packages/INSTALL +5 -0
- data/all/packages/arrayfields-3.6.0.tgz +0 -0
- data/all/packages/lockfile-1.4.1.tgz +0 -0
- data/all/packages/posixlock-0.0.1.tgz +0 -0
- data/all/packages/ruby-1.8.6.tgz +0 -0
- data/all/packages/rubygems-0.9.2.tgz +0 -0
- data/all/packages/sqlite-2.8.15.tar.gz +0 -0
- data/all/packages/sqlite-ruby-1.3.1.tar.gz +0 -0
- data/bin/rq +830 -361
- data/bin/rq-3.0.0 +860 -0
- data/doc/classes/ARGV.html +134 -0
- data/doc/classes/ARGV.src/M000036.html +36 -0
- data/doc/classes/ARGV.src/M000037.html +25 -0
- data/doc/classes/OrderedHash.html +1043 -0
- data/doc/classes/OrderedHash.src/M000003.html +26 -0
- data/doc/classes/OrderedHash.src/M000004.html +31 -0
- data/doc/classes/OrderedHash.src/M000005.html +23 -0
- data/doc/classes/OrderedHash.src/M000006.html +23 -0
- data/doc/classes/OrderedHash.src/M000007.html +24 -0
- data/doc/classes/OrderedHash.src/M000009.html +24 -0
- data/doc/classes/OrderedHash.src/M000010.html +24 -0
- data/doc/classes/OrderedHash.src/M000011.html +24 -0
- data/doc/classes/OrderedHash.src/M000012.html +24 -0
- data/doc/classes/OrderedHash.src/M000013.html +24 -0
- data/doc/classes/OrderedHash.src/M000014.html +24 -0
- data/doc/classes/OrderedHash.src/M000016.html +26 -0
- data/doc/classes/OrderedHash.src/M000017.html +25 -0
- data/doc/classes/OrderedHash.src/M000018.html +23 -0
- data/doc/classes/OrderedHash.src/M000019.html +25 -0
- data/doc/classes/OrderedHash.src/M000020.html +23 -0
- data/doc/classes/OrderedHash.src/M000021.html +24 -0
- data/doc/classes/OrderedHash.src/M000022.html +24 -0
- data/doc/classes/OrderedHash.src/M000023.html +24 -0
- data/doc/classes/OrderedHash.src/M000024.html +29 -0
- data/doc/classes/OrderedHash.src/M000025.html +29 -0
- data/doc/classes/OrderedHash.src/M000026.html +24 -0
- data/doc/classes/OrderedHash.src/M000027.html +25 -0
- data/doc/classes/OrderedHash.src/M000028.html +23 -0
- data/doc/classes/OrderedHash.src/M000029.html +25 -0
- data/doc/classes/OrderedHash.src/M000030.html +24 -0
- data/doc/classes/OrderedHash.src/M000032.html +23 -0
- data/doc/classes/OrderedHash.src/M000033.html +25 -0
- data/doc/classes/OrderedHash.src/M000034.html +36 -0
- data/doc/classes/OrderedHash.src/M000035.html +23 -0
- data/doc/classes/RQ.html +647 -0
- data/doc/classes/RQ/Backer.html +240 -0
- data/doc/classes/RQ/Backer.src/M000121.html +31 -0
- data/doc/classes/RQ/ConfigFile.html +416 -0
- data/doc/classes/RQ/ConfigFile.src/M000100.html +34 -0
- data/doc/classes/RQ/ConfigFile.src/M000101.html +26 -0
- data/doc/classes/RQ/ConfigFile.src/M000102.html +33 -0
- data/doc/classes/RQ/ConfigFile.src/M000103.html +25 -0
- data/doc/classes/RQ/ConfigFile.src/M000104.html +34 -0
- data/doc/classes/RQ/ConfigFile.src/M000105.html +25 -0
- data/doc/classes/RQ/Configurator.html +249 -0
- data/doc/classes/RQ/Configurator.src/M000122.html +40 -0
- data/doc/classes/RQ/Creator.html +264 -0
- data/doc/classes/RQ/Creator.src/M000157.html +32 -0
- data/doc/classes/RQ/Cron.html +461 -0
- data/doc/classes/RQ/Deleter.html +259 -0
- data/doc/classes/RQ/Deleter.src/M000078.html +52 -0
- data/doc/classes/RQ/Executor.html +249 -0
- data/doc/classes/RQ/Executor.src/M000099.html +45 -0
- data/doc/classes/RQ/Feeder.html +1131 -0
- data/doc/classes/RQ/Feeder.src/M000079.html +67 -0
- data/doc/classes/RQ/Feeder.src/M000080.html +47 -0
- data/doc/classes/RQ/Feeder.src/M000081.html +98 -0
- data/doc/classes/RQ/Feeder.src/M000082.html +25 -0
- data/doc/classes/RQ/Feeder.src/M000083.html +30 -0
- data/doc/classes/RQ/Feeder.src/M000084.html +58 -0
- data/doc/classes/RQ/Feeder.src/M000085.html +37 -0
- data/doc/classes/RQ/Feeder.src/M000086.html +40 -0
- data/doc/classes/RQ/Feeder.src/M000087.html +37 -0
- data/doc/classes/RQ/Feeder.src/M000088.html +35 -0
- data/doc/classes/RQ/Feeder.src/M000089.html +47 -0
- data/doc/classes/RQ/Feeder.src/M000090.html +25 -0
- data/doc/classes/RQ/Feeder.src/M000091.html +78 -0
- data/doc/classes/RQ/Feeder.src/M000092.html +34 -0
- data/doc/classes/RQ/Feeder.src/M000093.html +36 -0
- data/doc/classes/RQ/Feeder.src/M000094.html +25 -0
- data/doc/classes/RQ/Feeder.src/M000095.html +27 -0
- data/doc/classes/RQ/IOViewer.html +256 -0
- data/doc/classes/RQ/Job.html +304 -0
- data/doc/classes/RQ/Job.src/M000168.html +26 -0
- data/doc/classes/RQ/Job.src/M000169.html +37 -0
- data/doc/classes/RQ/Job.src/M000170.html +23 -0
- data/doc/classes/RQ/Job/Methods.html +210 -0
- data/doc/classes/RQ/JobQueue.html +1780 -0
- data/doc/classes/RQ/JobQueue.src/M000176.html +31 -0
- data/doc/classes/RQ/JobQueue.src/M000177.html +34 -0
- data/doc/classes/RQ/JobQueue.src/M000178.html +60 -0
- data/doc/classes/RQ/JobQueue.src/M000179.html +63 -0
- data/doc/classes/RQ/JobQueue.src/M000180.html +73 -0
- data/doc/classes/RQ/JobQueue.src/M000181.html +217 -0
- data/doc/classes/RQ/JobQueue.src/M000182.html +50 -0
- data/doc/classes/RQ/JobQueue.src/M000183.html +83 -0
- data/doc/classes/RQ/JobQueue.src/M000184.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000185.html +83 -0
- data/doc/classes/RQ/JobQueue.src/M000186.html +28 -0
- data/doc/classes/RQ/JobQueue.src/M000187.html +26 -0
- data/doc/classes/RQ/JobQueue.src/M000188.html +26 -0
- data/doc/classes/RQ/JobQueue.src/M000189.html +32 -0
- data/doc/classes/RQ/JobQueue.src/M000190.html +30 -0
- data/doc/classes/RQ/JobQueue.src/M000191.html +37 -0
- data/doc/classes/RQ/JobQueue.src/M000192.html +36 -0
- data/doc/classes/RQ/JobQueue.src/M000193.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000194.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000195.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000196.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000197.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000198.html +73 -0
- data/doc/classes/RQ/JobQueue.src/M000199.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000200.html +38 -0
- data/doc/classes/RQ/JobQueue.src/M000201.html +28 -0
- data/doc/classes/RQ/JobQueue/Error.html +187 -0
- data/doc/classes/RQ/JobRunner.html +386 -0
- data/doc/classes/RQ/JobRunner.src/M000117.html +53 -0
- data/doc/classes/RQ/JobRunner.src/M000118.html +26 -0
- data/doc/classes/RQ/JobRunnerDaemon.html +590 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000159.html +94 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000160.html +27 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000161.html +39 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000162.html +27 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000163.html +27 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000164.html +28 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000165.html +28 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000166.html +37 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000167.html +25 -0
- data/doc/classes/RQ/Lister.html +256 -0
- data/doc/classes/RQ/Lister.src/M000156.html +52 -0
- data/doc/classes/RQ/Locker.html +250 -0
- data/doc/classes/RQ/Locker.src/M000120.html +40 -0
- data/doc/classes/RQ/Logging.html +296 -0
- data/doc/classes/RQ/Logging.src/M000067.html +28 -0
- data/doc/classes/RQ/Logging/LogClassMethods.html +254 -0
- data/doc/classes/RQ/Logging/LogClassMethods.src/M000068.html +32 -0
- data/doc/classes/RQ/Logging/LogClassMethods.src/M000069.html +28 -0
- data/doc/classes/RQ/Logging/LogMethods.html +404 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000070.html +35 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000071.html +28 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000072.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000073.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000074.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000075.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000076.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000077.html +29 -0
- data/doc/classes/RQ/Logging/LoggerExt.html +194 -0
- data/doc/classes/RQ/Main.html +2110 -0
- data/doc/classes/RQ/MainHelper.html +607 -0
- data/doc/classes/RQ/MainHelper.src/M000171.html +33 -0
- data/doc/classes/RQ/MainHelper.src/M000172.html +32 -0
- data/doc/classes/RQ/MainHelper.src/M000173.html +44 -0
- data/doc/classes/RQ/OrderedAutoHash.html +258 -0
- data/doc/classes/RQ/OrderedAutoHash.src/M000205.html +25 -0
- data/doc/classes/RQ/OrderedAutoHash.src/M000206.html +25 -0
- data/doc/classes/RQ/QDB.html +1653 -0
- data/doc/classes/RQ/QDB.src/M000126.html +25 -0
- data/doc/classes/RQ/QDB.src/M000127.html +37 -0
- data/doc/classes/RQ/QDB.src/M000128.html +27 -0
- data/doc/classes/RQ/QDB.src/M000129.html +27 -0
- data/doc/classes/RQ/QDB.src/M000130.html +27 -0
- data/doc/classes/RQ/QDB.src/M000131.html +31 -0
- data/doc/classes/RQ/QDB.src/M000132.html +32 -0
- data/doc/classes/RQ/QDB.src/M000133.html +30 -0
- data/doc/classes/RQ/QDB.src/M000134.html +91 -0
- data/doc/classes/RQ/QDB.src/M000135.html +26 -0
- data/doc/classes/RQ/QDB.src/M000136.html +46 -0
- data/doc/classes/RQ/QDB.src/M000137.html +26 -0
- data/doc/classes/RQ/QDB.src/M000138.html +51 -0
- data/doc/classes/RQ/QDB.src/M000139.html +61 -0
- data/doc/classes/RQ/QDB.src/M000140.html +57 -0
- data/doc/classes/RQ/QDB.src/M000141.html +25 -0
- data/doc/classes/RQ/QDB.src/M000142.html +25 -0
- data/doc/classes/RQ/QDB.src/M000143.html +37 -0
- data/doc/classes/RQ/QDB.src/M000144.html +107 -0
- data/doc/classes/RQ/QDB.src/M000145.html +40 -0
- data/doc/classes/RQ/QDB.src/M000146.html +34 -0
- data/doc/classes/RQ/QDB.src/M000147.html +33 -0
- data/doc/classes/RQ/QDB.src/M000148.html +32 -0
- data/doc/classes/RQ/QDB.src/M000149.html +98 -0
- data/doc/classes/RQ/QDB.src/M000150.html +26 -0
- data/doc/classes/RQ/QDB.src/M000151.html +31 -0
- data/doc/classes/RQ/QDB.src/M000154.html +26 -0
- data/doc/classes/RQ/QDB/AbortedTransactionError.html +187 -0
- data/doc/classes/RQ/QDB/RollbackTransactionError.html +187 -0
- data/doc/classes/RQ/Querier.html +328 -0
- data/doc/classes/RQ/Querier.src/M000203.html +45 -0
- data/doc/classes/RQ/Querier.src/M000204.html +78 -0
- data/doc/classes/RQ/ReSubmitter.html +307 -0
- data/doc/classes/RQ/ReSubmitter.src/M000098.html +111 -0
- data/doc/classes/RQ/Recoverer.html +247 -0
- data/doc/classes/RQ/Refresher.html +346 -0
- data/doc/classes/RQ/Refresher.src/M000174.html +51 -0
- data/doc/classes/RQ/Refresher.src/M000175.html +44 -0
- data/doc/classes/RQ/Relayer.html +723 -0
- data/doc/classes/RQ/Relayer.src/M000106.html +91 -0
- data/doc/classes/RQ/Relayer.src/M000107.html +47 -0
- data/doc/classes/RQ/Relayer.src/M000108.html +46 -0
- data/doc/classes/RQ/Relayer.src/M000109.html +26 -0
- data/doc/classes/RQ/Relayer.src/M000110.html +46 -0
- data/doc/classes/RQ/Relayer.src/M000111.html +40 -0
- data/doc/classes/RQ/Relayer.src/M000112.html +37 -0
- data/doc/classes/RQ/Relayer.src/M000113.html +40 -0
- data/doc/classes/RQ/Relayer.src/M000114.html +27 -0
- data/doc/classes/RQ/Relayer.src/M000115.html +25 -0
- data/doc/classes/RQ/Relayer.src/M000116.html +38 -0
- data/doc/classes/RQ/Resource.html +187 -0
- data/doc/classes/RQ/ResourceManager.html +276 -0
- data/doc/classes/RQ/Rotater.html +324 -0
- data/doc/classes/RQ/Rotater.src/M000158.html +71 -0
- data/doc/classes/RQ/SleepCycle.html +322 -0
- data/doc/classes/RQ/SleepCycle.src/M000123.html +32 -0
- data/doc/classes/RQ/SleepCycle.src/M000124.html +27 -0
- data/doc/classes/RQ/SleepCycle.src/M000125.html +25 -0
- data/doc/classes/RQ/Snapshotter.html +250 -0
- data/doc/classes/RQ/Snapshotter.src/M000097.html +35 -0
- data/doc/classes/RQ/StatusLister.html +289 -0
- data/doc/classes/RQ/StatusLister.src/M000096.html +26 -0
- data/doc/classes/RQ/Submitter.html +319 -0
- data/doc/classes/RQ/Submitter.src/M000119.html +92 -0
- data/doc/classes/RQ/Toucher.html +384 -0
- data/doc/classes/RQ/Updater.html +304 -0
- data/doc/classes/RQ/Updater.src/M000202.html +97 -0
- data/doc/classes/RQ/Usage.html +346 -0
- data/doc/classes/RQ/Usage.src/M000038.html +29 -0
- data/doc/classes/RQ/Usage.src/M000039.html +72 -0
- data/doc/classes/RQ/Util.html +1043 -0
- data/doc/classes/RQ/Util.src/M000040.html +27 -0
- data/doc/classes/RQ/Util.src/M000041.html +26 -0
- data/doc/classes/RQ/Util.src/M000042.html +25 -0
- data/doc/classes/RQ/Util.src/M000043.html +25 -0
- data/doc/classes/RQ/Util.src/M000044.html +30 -0
- data/doc/classes/RQ/Util.src/M000045.html +25 -0
- data/doc/classes/RQ/Util.src/M000046.html +34 -0
- data/doc/classes/RQ/Util.src/M000047.html +31 -0
- data/doc/classes/RQ/Util.src/M000048.html +41 -0
- data/doc/classes/RQ/Util.src/M000049.html +27 -0
- data/doc/classes/RQ/Util.src/M000050.html +34 -0
- data/doc/classes/RQ/Util.src/M000051.html +28 -0
- data/doc/classes/RQ/Util.src/M000052.html +27 -0
- data/doc/classes/RQ/Util.src/M000053.html +31 -0
- data/doc/classes/RQ/Util.src/M000054.html +31 -0
- data/doc/classes/RQ/Util.src/M000055.html +31 -0
- data/doc/classes/RQ/Util.src/M000056.html +25 -0
- data/doc/classes/RQ/Util.src/M000057.html +25 -0
- data/doc/classes/RQ/Util.src/M000058.html +25 -0
- data/doc/classes/RQ/Util.src/M000059.html +25 -0
- data/doc/classes/RQ/Util.src/M000060.html +25 -0
- data/doc/classes/RQ/Util.src/M000061.html +27 -0
- data/doc/classes/RQ/Util.src/M000062.html +28 -0
- data/doc/classes/RQ/Util.src/M000063.html +39 -0
- data/doc/classes/RQ/Util.src/M000064.html +39 -0
- data/doc/classes/RQ/Util.src/M000065.html +31 -0
- data/doc/classes/RQ/Util.src/M000066.html +29 -0
- data/doc/classes/SQLite.html +120 -0
- data/doc/classes/SQLite/Database.html +546 -0
- data/doc/classes/SQLite/TypeTranslator.html +221 -0
- data/doc/created.rid +1 -0
- data/doc/dot/f_0.dot +14 -0
- data/doc/dot/f_0.jpg +0 -0
- data/doc/dot/f_1.dot +14 -0
- data/doc/dot/f_1.jpg +0 -0
- data/doc/dot/f_10.dot +802 -0
- data/doc/dot/f_10.jpg +0 -0
- data/doc/dot/f_11.dot +14 -0
- data/doc/dot/f_11.jpg +0 -0
- data/doc/dot/f_12.dot +802 -0
- data/doc/dot/f_12.jpg +0 -0
- data/doc/dot/f_13.dot +802 -0
- data/doc/dot/f_13.jpg +0 -0
- data/doc/dot/f_14.dot +802 -0
- data/doc/dot/f_14.jpg +0 -0
- data/doc/dot/f_15.dot +802 -0
- data/doc/dot/f_15.jpg +0 -0
- data/doc/dot/f_16.dot +802 -0
- data/doc/dot/f_16.jpg +0 -0
- data/doc/dot/f_17.dot +802 -0
- data/doc/dot/f_17.jpg +0 -0
- data/doc/dot/f_18.dot +14 -0
- data/doc/dot/f_18.jpg +0 -0
- data/doc/dot/f_19.dot +802 -0
- data/doc/dot/f_19.jpg +0 -0
- data/doc/dot/f_2.dot +14 -0
- data/doc/dot/f_2.jpg +0 -0
- data/doc/dot/f_20.dot +802 -0
- data/doc/dot/f_20.jpg +0 -0
- data/doc/dot/f_21.dot +802 -0
- data/doc/dot/f_21.jpg +0 -0
- data/doc/dot/f_22.dot +802 -0
- data/doc/dot/f_22.jpg +0 -0
- data/doc/dot/f_23.dot +802 -0
- data/doc/dot/f_23.jpg +0 -0
- data/doc/dot/f_24.dot +802 -0
- data/doc/dot/f_24.jpg +0 -0
- data/doc/dot/f_25.dot +817 -0
- data/doc/dot/f_25.jpg +0 -0
- data/doc/dot/f_26.dot +29 -0
- data/doc/dot/f_26.jpg +0 -0
- data/doc/dot/f_27.dot +802 -0
- data/doc/dot/f_27.jpg +0 -0
- data/doc/dot/f_28.dot +802 -0
- data/doc/dot/f_28.jpg +0 -0
- data/doc/dot/f_29.dot +802 -0
- data/doc/dot/f_29.jpg +0 -0
- data/doc/dot/f_3.dot +14 -0
- data/doc/dot/f_3.jpg +0 -0
- data/doc/dot/f_30.dot +802 -0
- data/doc/dot/f_30.jpg +0 -0
- data/doc/dot/f_31.dot +802 -0
- data/doc/dot/f_31.jpg +0 -0
- data/doc/dot/f_32.dot +802 -0
- data/doc/dot/f_32.jpg +0 -0
- data/doc/dot/f_33.dot +802 -0
- data/doc/dot/f_33.jpg +0 -0
- data/doc/dot/f_34.dot +802 -0
- data/doc/dot/f_34.jpg +0 -0
- data/doc/dot/f_35.dot +802 -0
- data/doc/dot/f_35.jpg +0 -0
- data/doc/dot/f_36.dot +802 -0
- data/doc/dot/f_36.jpg +0 -0
- data/doc/dot/f_37.dot +802 -0
- data/doc/dot/f_37.jpg +0 -0
- data/doc/dot/f_38.dot +54 -0
- data/doc/dot/f_38.jpg +0 -0
- data/doc/dot/f_39.dot +802 -0
- data/doc/dot/f_39.jpg +0 -0
- data/doc/dot/f_4.dot +802 -0
- data/doc/dot/f_4.jpg +0 -0
- data/doc/dot/f_40.dot +802 -0
- data/doc/dot/f_40.jpg +0 -0
- data/doc/dot/f_41.dot +802 -0
- data/doc/dot/f_41.jpg +0 -0
- data/doc/dot/f_42.dot +802 -0
- data/doc/dot/f_42.jpg +0 -0
- data/doc/dot/f_43.dot +802 -0
- data/doc/dot/f_43.jpg +0 -0
- data/doc/dot/f_44.dot +802 -0
- data/doc/dot/f_44.jpg +0 -0
- data/doc/dot/f_5.dot +802 -0
- data/doc/dot/f_5.jpg +0 -0
- data/doc/dot/f_6.dot +802 -0
- data/doc/dot/f_6.jpg +0 -0
- data/doc/dot/f_7.dot +802 -0
- data/doc/dot/f_7.jpg +0 -0
- data/doc/dot/f_8.dot +802 -0
- data/doc/dot/f_8.jpg +0 -0
- data/doc/dot/f_9.dot +802 -0
- data/doc/dot/f_9.jpg +0 -0
- data/doc/dot/m_10_0.dot +802 -0
- data/doc/dot/m_10_0.jpg +0 -0
- data/doc/dot/m_11_0.dot +734 -0
- data/doc/dot/m_11_0.jpg +0 -0
- data/doc/dot/m_12_0.dot +802 -0
- data/doc/dot/m_12_0.jpg +0 -0
- data/doc/dot/m_13_0.dot +802 -0
- data/doc/dot/m_13_0.jpg +0 -0
- data/doc/dot/m_14_0.dot +802 -0
- data/doc/dot/m_14_0.jpg +0 -0
- data/doc/dot/m_15_0.dot +802 -0
- data/doc/dot/m_15_0.jpg +0 -0
- data/doc/dot/m_16_0.dot +802 -0
- data/doc/dot/m_16_0.jpg +0 -0
- data/doc/dot/m_17_0.dot +802 -0
- data/doc/dot/m_17_0.jpg +0 -0
- data/doc/dot/m_18_0.dot +734 -0
- data/doc/dot/m_18_0.jpg +0 -0
- data/doc/dot/m_19_0.dot +802 -0
- data/doc/dot/m_19_0.jpg +0 -0
- data/doc/dot/m_20_0.dot +802 -0
- data/doc/dot/m_20_0.jpg +0 -0
- data/doc/dot/m_21_0.dot +802 -0
- data/doc/dot/m_21_0.jpg +0 -0
- data/doc/dot/m_22_0.dot +802 -0
- data/doc/dot/m_22_0.jpg +0 -0
- data/doc/dot/m_23_0.dot +802 -0
- data/doc/dot/m_23_0.jpg +0 -0
- data/doc/dot/m_24_0.dot +802 -0
- data/doc/dot/m_24_0.jpg +0 -0
- data/doc/dot/m_25_0.dot +802 -0
- data/doc/dot/m_25_0.jpg +0 -0
- data/doc/dot/m_26_0.dot +734 -0
- data/doc/dot/m_26_0.jpg +0 -0
- data/doc/dot/m_27_0.dot +802 -0
- data/doc/dot/m_27_0.jpg +0 -0
- data/doc/dot/m_28_0.dot +802 -0
- data/doc/dot/m_28_0.jpg +0 -0
- data/doc/dot/m_29_0.dot +802 -0
- data/doc/dot/m_29_0.jpg +0 -0
- data/doc/dot/m_30_0.dot +802 -0
- data/doc/dot/m_30_0.jpg +0 -0
- data/doc/dot/m_31_0.dot +802 -0
- data/doc/dot/m_31_0.jpg +0 -0
- data/doc/dot/m_32_0.dot +802 -0
- data/doc/dot/m_32_0.jpg +0 -0
- data/doc/dot/m_33_0.dot +802 -0
- data/doc/dot/m_33_0.jpg +0 -0
- data/doc/dot/m_34_0.dot +802 -0
- data/doc/dot/m_34_0.jpg +0 -0
- data/doc/dot/m_35_0.dot +802 -0
- data/doc/dot/m_35_0.jpg +0 -0
- data/doc/dot/m_36_0.dot +802 -0
- data/doc/dot/m_36_0.jpg +0 -0
- data/doc/dot/m_37_0.dot +802 -0
- data/doc/dot/m_37_0.jpg +0 -0
- data/doc/dot/m_38_0.dot +54 -0
- data/doc/dot/m_38_0.jpg +0 -0
- data/doc/dot/m_39_0.dot +802 -0
- data/doc/dot/m_39_0.jpg +0 -0
- data/doc/dot/m_40_0.dot +802 -0
- data/doc/dot/m_40_0.jpg +0 -0
- data/doc/dot/m_41_0.dot +802 -0
- data/doc/dot/m_41_0.jpg +0 -0
- data/doc/dot/m_42_0.dot +802 -0
- data/doc/dot/m_42_0.jpg +0 -0
- data/doc/dot/m_43_0.dot +802 -0
- data/doc/dot/m_43_0.jpg +0 -0
- data/doc/dot/m_44_0.dot +802 -0
- data/doc/dot/m_44_0.jpg +0 -0
- data/doc/dot/m_4_0.dot +802 -0
- data/doc/dot/m_4_0.jpg +0 -0
- data/doc/dot/m_5_0.dot +802 -0
- data/doc/dot/m_5_0.jpg +0 -0
- data/doc/dot/m_6_0.dot +802 -0
- data/doc/dot/m_6_0.jpg +0 -0
- data/doc/dot/m_7_0.dot +802 -0
- data/doc/dot/m_7_0.jpg +0 -0
- data/doc/dot/m_8_0.dot +802 -0
- data/doc/dot/m_8_0.jpg +0 -0
- data/doc/dot/m_9_0.dot +802 -0
- data/doc/dot/m_9_0.jpg +0 -0
- data/doc/files/DEPENDS.html +107 -0
- data/doc/files/HISTORY.html +316 -0
- data/doc/files/INSTALL.html +126 -0
- data/doc/files/README.html +1223 -0
- data/doc/files/TODO.html +148 -0
- data/doc/files/TUTORIAL.html +392 -0
- data/doc/files/VERSION.html +107 -0
- data/doc/files/bin/rq_rb.html +231 -0
- data/doc/files/install_rb.html +188 -0
- data/doc/files/install_rb.src/M000001.html +53 -0
- data/doc/files/install_rb.src/M000002.html +43 -0
- data/doc/files/lib/rq-1_0_0/backer_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/configfile_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/configurator_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/creator_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-1_0_0/deleter_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/executor_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/feeder_rb.html +178 -0
- data/doc/files/lib/rq-1_0_0/job_rb.html +176 -0
- data/doc/files/lib/rq-1_0_0/jobqueue_rb.html +177 -0
- data/doc/files/lib/rq-1_0_0/jobrunner_rb.html +175 -0
- data/doc/files/lib/rq-1_0_0/jobrunnerdaemon_rb.html +179 -0
- data/doc/files/lib/rq-1_0_0/lister_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/locker_rb.html +175 -0
- data/doc/files/lib/rq-1_0_0/logging_rb.html +178 -0
- data/doc/files/lib/rq-1_0_0/mainhelper_rb.html +175 -0
- data/doc/files/lib/rq-1_0_0/qdb_rb.html +177 -0
- data/doc/files/lib/rq-1_0_0/querier_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/refresher_rb.html +167 -0
- data/doc/files/lib/rq-1_0_0/relayer_rb.html +178 -0
- data/doc/files/lib/rq-1_0_0/sleepcycle_rb.html +167 -0
- data/doc/files/lib/rq-1_0_0/snapshotter_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/statuslister_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/submitter_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/updater_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/usage_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/util_rb.html +176 -0
- data/doc/files/lib/rq-2_0_0/backer_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/configfile_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/configurator_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/creator_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_0_0/deleter_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/executor_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/feeder_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/job_rb.html +182 -0
- data/doc/files/lib/rq-2_0_0/jobqueue_rb.html +185 -0
- data/doc/files/lib/rq-2_0_0/jobrunner_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/jobrunnerdaemon_rb.html +185 -0
- data/doc/files/lib/rq-2_0_0/lister_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/locker_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/logging_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/mainhelper_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/orderedautohash_rb.html +182 -0
- data/doc/files/lib/rq-2_0_0/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_0_0/qdb_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/querier_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/refresher_rb.html +173 -0
- data/doc/files/lib/rq-2_0_0/relayer_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/rotater_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/sleepcycle_rb.html +173 -0
- data/doc/files/lib/rq-2_0_0/snapshotter_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/statuslister_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/submitter_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/updater_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/usage_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/util_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/backer_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/configfile_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/configurator_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/creator_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_3_1/deleter_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/executor_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/feeder_rb.html +187 -0
- data/doc/files/lib/rq-2_3_1/job_rb.html +185 -0
- data/doc/files/lib/rq-2_3_1/jobqueue_rb.html +187 -0
- data/doc/files/lib/rq-2_3_1/jobrunner_rb.html +184 -0
- data/doc/files/lib/rq-2_3_1/jobrunnerdaemon_rb.html +187 -0
- data/doc/files/lib/rq-2_3_1/lister_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/locker_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/logging_rb.html +186 -0
- data/doc/files/lib/rq-2_3_1/mainhelper_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/orderedautohash_rb.html +184 -0
- data/doc/files/lib/rq-2_3_1/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_3_1/qdb_rb.html +188 -0
- data/doc/files/lib/rq-2_3_1/querier_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/refresher_rb.html +175 -0
- data/doc/files/lib/rq-2_3_1/relayer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_1/resubmitter_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/rotater_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/sleepcycle_rb.html +175 -0
- data/doc/files/lib/rq-2_3_1/snapshotter_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/statuslister_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/submitter_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/updater_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/usage_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/util_rb.html +184 -0
- data/doc/files/lib/rq-2_3_1_rb.html +153 -0
- data/doc/files/lib/rq-2_3_2/backer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/configfile_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/configurator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/creator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_3_2/deleter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/executor_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/feeder_rb.html +191 -0
- data/doc/files/lib/rq-2_3_2/ioviewer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/job_rb.html +189 -0
- data/doc/files/lib/rq-2_3_2/jobqueue_rb.html +192 -0
- data/doc/files/lib/rq-2_3_2/jobrunner_rb.html +188 -0
- data/doc/files/lib/rq-2_3_2/jobrunnerdaemon_rb.html +191 -0
- data/doc/files/lib/rq-2_3_2/lister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/locker_rb.html +187 -0
- data/doc/files/lib/rq-2_3_2/logging_rb.html +190 -0
- data/doc/files/lib/rq-2_3_2/mainhelper_rb.html +188 -0
- data/doc/files/lib/rq-2_3_2/orderedautohash_rb.html +188 -0
- data/doc/files/lib/rq-2_3_2/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_3_2/qdb_rb.html +193 -0
- data/doc/files/lib/rq-2_3_2/querier_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/recoverer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/refresher_rb.html +179 -0
- data/doc/files/lib/rq-2_3_2/relayer_rb.html +190 -0
- data/doc/files/lib/rq-2_3_2/resubmitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_2/rotater_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/sleepcycle_rb.html +179 -0
- data/doc/files/lib/rq-2_3_2/snapshotter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/statuslister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/submitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_2/updater_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/usage_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/util_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/backer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/configfile_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/configurator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/creator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_3_3/deleter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/executor_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/feeder_rb.html +191 -0
- data/doc/files/lib/rq-2_3_3/ioviewer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/job_rb.html +189 -0
- data/doc/files/lib/rq-2_3_3/jobqueue_rb.html +192 -0
- data/doc/files/lib/rq-2_3_3/jobrunner_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/jobrunnerdaemon_rb.html +191 -0
- data/doc/files/lib/rq-2_3_3/lister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/locker_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/logging_rb.html +190 -0
- data/doc/files/lib/rq-2_3_3/mainhelper_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/orderedautohash_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_3_3/qdb_rb.html +193 -0
- data/doc/files/lib/rq-2_3_3/querier_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/recoverer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/refresher_rb.html +179 -0
- data/doc/files/lib/rq-2_3_3/relayer_rb.html +190 -0
- data/doc/files/lib/rq-2_3_3/resubmitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/rotater_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/sleepcycle_rb.html +179 -0
- data/doc/files/lib/rq-2_3_3/snapshotter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/statuslister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/submitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/updater_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/usage_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/util_rb.html +188 -0
- data/doc/files/lib/rq-3_0_0/backer_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/configfile_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/configurator_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/creator_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/cron_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-3_0_0/deleter_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/executor_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/feeder_rb.html +199 -0
- data/doc/files/lib/rq-3_0_0/ioviewer_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/job_rb.html +197 -0
- data/doc/files/lib/rq-3_0_0/jobqueue_rb.html +200 -0
- data/doc/files/lib/rq-3_0_0/jobrunner_rb.html +196 -0
- data/doc/files/lib/rq-3_0_0/jobrunnerdaemon_rb.html +199 -0
- data/doc/files/lib/rq-3_0_0/lister_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/locker_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/logging_rb.html +198 -0
- data/doc/files/lib/rq-3_0_0/mainhelper_rb.html +196 -0
- data/doc/files/lib/rq-3_0_0/orderedautohash_rb.html +196 -0
- data/doc/files/lib/rq-3_0_0/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-3_0_0/qdb_rb.html +201 -0
- data/doc/files/lib/rq-3_0_0/querier_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/recoverer_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/refresher_rb.html +187 -0
- data/doc/files/lib/rq-3_0_0/relayer_rb.html +198 -0
- data/doc/files/lib/rq-3_0_0/resource_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/resourcemanager_rb.html +187 -0
- data/doc/files/lib/rq-3_0_0/resubmitter_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/rotater_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/sleepcycle_rb.html +187 -0
- data/doc/files/lib/rq-3_0_0/snapshotter_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/sqlite_rb.html +160 -0
- data/doc/files/lib/rq-3_0_0/statuslister_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/submitter_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/toucher_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/updater_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/usage_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/util_rb.html +196 -0
- data/doc/files/lib/rq_rb.html +244 -0
- data/doc/fr_class_index.html +73 -0
- data/doc/fr_file_index.html +71 -0
- data/doc/fr_method_index.html +323 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +172 -0
- data/extconf.rb +150 -0
- data/gemspec.rb +32 -0
- data/install.rb +75 -8
- data/lib/{rq-0.1.7.rb → rq-3.0.0.rb} +52 -10
- data/lib/{rq-0.1.7 → rq-3.0.0}/backer.rb +11 -7
- data/lib/{rq-0.1.7 → rq-3.0.0}/configfile.rb +21 -17
- data/lib/{rq-0.1.7 → rq-3.0.0}/configurator.rb +10 -6
- data/lib/rq-3.0.0/creator.rb +46 -0
- data/lib/rq-3.0.0/cron.rb +125 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/defaultconfig.txt +0 -0
- data/lib/rq-3.0.0/deleter.rb +51 -0
- data/lib/rq-3.0.0/executor.rb +40 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/feeder.rb +245 -91
- data/lib/rq-3.0.0/i686-linux/_sqlite.so +0 -0
- data/lib/rq-3.0.0/ioviewer.rb +48 -0
- data/lib/rq-3.0.0/job.rb +51 -0
- data/lib/rq-3.0.0/jobqueue.rb +899 -0
- data/lib/rq-3.0.0/jobrunner.rb +104 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/jobrunnerdaemon.rb +41 -27
- data/lib/rq-3.0.0/lister.rb +47 -0
- data/lib/rq-3.0.0/local/bin/sqlite +0 -0
- data/lib/rq-3.0.0/local/include/sqlite.h +868 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.a +0 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.la +35 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.so +0 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.so.0 +0 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.so.0.8.6 +0 -0
- data/lib/rq-3.0.0/local/lib/pkgconfig/sqlite.pc +12 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/locker.rb +12 -6
- data/lib/{rq-0.1.7 → rq-3.0.0}/logging.rb +49 -42
- data/lib/rq-3.0.0/mainhelper.rb +184 -0
- data/lib/rq-3.0.0/orderedautohash.rb +39 -0
- data/lib/rq-3.0.0/orderedhash.rb +240 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/qdb.rb +183 -84
- data/lib/rq-3.0.0/querier.rb +98 -0
- data/lib/rq-3.0.0/recoverer.rb +28 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/refresher.rb +16 -8
- data/lib/rq-3.0.0/relayer.rb +283 -0
- data/lib/rq-3.0.0/resource.rb +22 -0
- data/lib/rq-3.0.0/resourcemanager.rb +40 -0
- data/lib/rq-3.0.0/resubmitter.rb +96 -0
- data/lib/rq-3.0.0/rotater.rb +98 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/sleepcycle.rb +14 -14
- data/lib/rq-3.0.0/snapshotter.rb +40 -0
- data/lib/rq-3.0.0/sqlite.rb +293 -0
- data/lib/rq-3.0.0/statuslister.rb +48 -0
- data/lib/rq-3.0.0/submitter.rb +109 -0
- data/lib/rq-3.0.0/toucher.rb +177 -0
- data/lib/rq-3.0.0/updater.rb +95 -0
- data/lib/rq-3.0.0/usage.rb +1157 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/util.rb +74 -56
- data/lib/rq.rb +52 -12
- data/rdoc.sh +17 -0
- data/rq +3 -1
- data/white_box/joblist +8 -0
- metadata +779 -96
- data/DEPENDS +0 -5
- data/HISTORY +0 -26
- data/VERSION +0 -1
- data/bin/rq-0.1.7 +0 -410
- data/lib/rq-0.1.7/creator.rb +0 -23
- data/lib/rq-0.1.7/deleter.rb +0 -39
- data/lib/rq-0.1.7/executor.rb +0 -41
- data/lib/rq-0.1.7/job.rb +0 -51
- data/lib/rq-0.1.7/jobqueue.rb +0 -432
- data/lib/rq-0.1.7/jobrunner.rb +0 -63
- data/lib/rq-0.1.7/lister.rb +0 -22
- data/lib/rq-0.1.7/mainhelper.rb +0 -53
- data/lib/rq-0.1.7/querier.rb +0 -33
- data/lib/rq-0.1.7/snapshotter.rb +0 -25
- data/lib/rq-0.1.7/statuslister.rb +0 -22
- data/lib/rq-0.1.7/submitter.rb +0 -90
- data/lib/rq-0.1.7/updater.rb +0 -95
- data/lib/rq-0.1.7/usage.rb +0 -609
- data/rdoc.cmd +0 -2
- data/rq.gemspec +0 -36
- data/rq.help +0 -552
data/INSTALL
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
=== SIMPLE
|
2
|
+
|
3
|
+
* cd into ./all/
|
4
|
+
|
5
|
+
* ./install.sh /full/path/to/a/nfs/mounted/directory/
|
6
|
+
|
7
|
+
* the nfs mounted path above should be visible by all cluster nodes
|
8
|
+
|
9
|
+
* this is the __reccomended__ procedure since it will result in a single nfs
|
10
|
+
install which all cluster nodes can use. the other install methods mean
|
11
|
+
you will have to install rq on __each__ node you plan to use it on.
|
12
|
+
|
13
|
+
=== RUBYGEMS
|
14
|
+
|
15
|
+
* gem install rq
|
16
|
+
|
17
|
+
=== STANDARD
|
18
|
+
|
19
|
+
* install all packages in ./depends/packages manually
|
20
|
+
|
21
|
+
* ruby install.rb
|
data/README
CHANGED
@@ -1,43 +1,84 @@
|
|
1
1
|
NAME
|
2
|
-
rq
|
2
|
+
rq v3.0.0
|
3
3
|
|
4
4
|
SYNOPSIS
|
5
5
|
rq (queue | export RQ_Q=q) mode [mode_args]* [options]*
|
6
6
|
|
7
|
+
URIS
|
8
|
+
|
9
|
+
http://codeforpeople.com/lib/ruby/rq/
|
10
|
+
http://raa.ruby-lang.org/project/rq/
|
11
|
+
http://www.linuxjournal.com/article/7922
|
7
12
|
|
8
13
|
DESCRIPTION
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
nodes
|
23
|
-
|
24
|
-
node
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
rq
|
31
|
-
|
32
|
-
|
33
|
-
|
14
|
+
|
15
|
+
ruby queue (rq) is a zero-admin zero-configuration tool used to create instant
|
16
|
+
unix clusters. rq requires only a central nfs filesystem in order to manage a
|
17
|
+
simple sqlite database as a distributed priority work queue. this simple
|
18
|
+
design allows researchers with minimal unix experience to install and
|
19
|
+
configure, in only a few minutes and without root privileges, a robust unix
|
20
|
+
cluster capable of distributing processes to many nodes - bringing dozens of
|
21
|
+
powerful cpus to their knees with a single blow. clearly this software should
|
22
|
+
be kept out of the hands of free radicals, seti enthusiasts, and one mr. j
|
23
|
+
safran.
|
24
|
+
|
25
|
+
the central concept of rq is that n nodes work in isolation to pull jobs
|
26
|
+
from an centrally mounted nfs priority work queue in a synchronized fashion.
|
27
|
+
the nodes have absolutely no knowledge of each other and all communication
|
28
|
+
is done via the queue meaning that, so long as the queue is available via
|
29
|
+
nfs and a single node is running jobs from it, the system will continue to
|
30
|
+
process jobs. there is no centralized process whatsoever - all nodes work
|
31
|
+
to take jobs from the queue and run them as fast as possible. this creates
|
32
|
+
a system which load balances automatically and is robust in face of node
|
33
|
+
failures.
|
34
|
+
|
35
|
+
although the rq system is simple in it's design it features powerful
|
36
|
+
functionality such as priority management, predicate and sql query , compact
|
37
|
+
streaming command-line processing, programmable api, hot-backup, and
|
38
|
+
input/capture of the stdin/stdout/stderr io streams of remote jobs. to date
|
39
|
+
rq has had no reported runtime failures and is in operation at dozens of
|
40
|
+
research centers around the world.
|
41
|
+
|
42
|
+
INVOCATION
|
43
|
+
|
44
|
+
the first argument to any rq command is the always the name of the queue
|
45
|
+
while the second is the mode of operation. the queue name may be omitted
|
46
|
+
if, and only if, the environment variable RQ_Q has been set to contain the
|
47
|
+
absolute path of target queue.
|
48
|
+
|
49
|
+
for instance, the command
|
50
|
+
|
51
|
+
~ > rq queue list
|
52
|
+
|
53
|
+
is equivalent to
|
54
|
+
|
55
|
+
~ > export RQ_Q=queue
|
56
|
+
~ > rq list
|
57
|
+
|
58
|
+
this facility can be used to create aliases for several queues, for example,
|
59
|
+
a .bashrc containing
|
60
|
+
|
61
|
+
alias MYQ="RQ_Q=/path/to/myq rq"
|
62
|
+
|
63
|
+
alias MYQ2="RQ_Q=/path/to/myq2 rq"
|
64
|
+
|
65
|
+
would allow syntax like
|
66
|
+
|
67
|
+
MYQ2 submit < joblist
|
34
68
|
|
35
69
|
MODES
|
36
70
|
|
37
|
-
|
71
|
+
rq operates in modes create, submit, resubmit, list, status, delete, update,
|
72
|
+
query, execute, configure, snapshot, lock, backup, rotate, feed, recover,
|
73
|
+
ioview, cron, help, and a few others. the meaning of 'mode_args' will
|
74
|
+
naturally change depending on the mode of operation.
|
75
|
+
|
76
|
+
the following mode abbreviations exist, note that not all modes have
|
77
|
+
abbreviations
|
38
78
|
|
39
79
|
c => create
|
40
80
|
s => submit
|
81
|
+
r => resubmit
|
41
82
|
l => list
|
42
83
|
ls => list
|
43
84
|
t => status
|
@@ -50,100 +91,171 @@ MODES
|
|
50
91
|
S => snapshot
|
51
92
|
L => lock
|
52
93
|
b => backup
|
53
|
-
|
94
|
+
R => rotate
|
54
95
|
f => feed
|
96
|
+
io => ioview
|
97
|
+
0 => stdin
|
98
|
+
1 => stdout
|
99
|
+
2 => stderr
|
100
|
+
h => help
|
101
|
+
|
55
102
|
|
56
103
|
create, c :
|
57
104
|
|
58
|
-
|
59
|
-
visible from all nodes intended to run jobs from it.
|
105
|
+
creates a queue. the queue must be located on an nfs mounted file system
|
106
|
+
visible from all nodes intended to run jobs from it. nfs locking must be
|
107
|
+
functional on this file system.
|
60
108
|
|
61
109
|
examples :
|
62
110
|
|
63
111
|
0) to create a queue
|
64
112
|
~ > rq /path/to/nfs/mounted/q create
|
65
|
-
|
113
|
+
|
114
|
+
or, using the abbreviation
|
115
|
+
|
66
116
|
~ > rq /path/to/nfs/mounted/q c
|
67
117
|
|
68
118
|
|
69
119
|
submit, s :
|
70
120
|
|
71
|
-
submit jobs to a queue to be proccesed by
|
72
|
-
are taken as the command to run. note that 'mode_args' are
|
73
|
-
expansion - if you don't understand what this means do
|
74
|
-
and pass jobs on stdin.
|
75
|
-
|
76
|
-
when running in submit mode a file may by specified as a list of commands
|
77
|
-
run using the '--infile, -i' option. this file is taken to be a
|
78
|
-
separated list of commands to submit, blank lines and comments (#)
|
79
|
-
allowed. if submitting a large number of jobs the input file method
|
80
|
-
MUCH, more efficient. if no commands are specified on the command line
|
81
|
-
automatically reads them from
|
82
|
-
as input (http://www.yaml.org/) - note that the output of nearly
|
83
|
-
commands is valid yaml and may, therefore, be piped as input into
|
84
|
-
command.
|
121
|
+
submit jobs to a queue to be proccesed by some feeding node. any
|
122
|
+
'mode_args' are taken as the command to run. note that 'mode_args' are
|
123
|
+
subject to shell expansion - if you don't understand what this means do
|
124
|
+
not use this feature and pass jobs on stdin.
|
125
|
+
|
126
|
+
when running in submit mode a file may by specified as a list of commands
|
127
|
+
to run using the '--infile, -i' option. this file is taken to be a
|
128
|
+
newline separated list of commands to submit, blank lines and comments (#)
|
129
|
+
are allowed. if submitting a large number of jobs the input file method
|
130
|
+
is MUCH, more efficient. if no commands are specified on the command line
|
131
|
+
rq automatically reads them from stdin. yaml formatted files are also
|
132
|
+
allowed as input (http://www.yaml.org/) - note that the output of nearly
|
133
|
+
all rq commands is valid yaml and may, therefore, be piped as input into
|
134
|
+
the submit command. the leading '---' of yaml file may not be omitted.
|
85
135
|
|
86
136
|
when submitting the '--priority, -p' option can be used here to determine
|
87
|
-
the priority of jobs. priorities may be any whole number
|
88
|
-
default. note that submission of a high
|
89
|
-
currently running low priority
|
90
|
-
migrate above lower priority jobs in the
|
91
|
-
soon as possible. constant submission
|
92
|
-
|
93
|
-
avoiding this situation is the
|
94
|
-
guaruntee rq makes regarding job
|
95
|
-
executed in an 'oldest
|
96
|
-
never supplanted.
|
137
|
+
the priority of jobs. priorities may be any whole number including
|
138
|
+
negative ones - zero is the default. note that submission of a high
|
139
|
+
priority job will NOT supplant a currently running low priority job, but
|
140
|
+
higher priority jobs WILL always migrate above lower priority jobs in the
|
141
|
+
queue in order that they be run as soon as possible. constant submission
|
142
|
+
of high priority jobs may create a starvation situation whereby low
|
143
|
+
priority jobs are never allowed to run. avoiding this situation is the
|
144
|
+
responsibility of the user. the only guaruntee rq makes regarding job
|
145
|
+
execution is that jobs are executed in an 'oldest-highest-priority' order
|
146
|
+
and that running jobs are never supplanted. jobs submitted with the
|
147
|
+
'--stage' option will not be eligible to be run by any node and will
|
148
|
+
remain in a 'holding' state until updated (see update mode) into the
|
149
|
+
'pending' mode, this option allows jobs to entered, or 'staged', in the
|
150
|
+
queue and then made candidates for running at a later date.
|
151
|
+
|
152
|
+
rq allows the stdin of commands to be provided and also captures the
|
153
|
+
stdout and stderr of any job run (of course standard shell redirects may
|
154
|
+
be used as well) and all three will be stored in a directory relative the
|
155
|
+
the queue itself. the stdin/stdout/stderr files are stored by job id and
|
156
|
+
there location (though relative to the queue) is shown in the output of
|
157
|
+
'list' (see docs for list).
|
158
|
+
|
97
159
|
|
98
160
|
examples :
|
99
161
|
|
100
162
|
0) submit the job ls to run on some feeding host
|
101
163
|
|
102
|
-
~ > rq q s ls
|
164
|
+
~ > rq q s ls
|
103
165
|
|
104
166
|
1) submit the job ls to run on some feeding host, at priority 9
|
105
167
|
|
106
168
|
~ > rq -p9 q s ls
|
107
169
|
|
108
|
-
2) submit
|
170
|
+
2) submit a list of jobs from file. note the '-' used to specify
|
171
|
+
reading jobs from stdin
|
109
172
|
|
110
|
-
~ >
|
111
|
-
|
112
|
-
|
173
|
+
~ > cat joblist
|
174
|
+
job1.sh
|
175
|
+
job2.sh
|
176
|
+
job2.sh
|
113
177
|
|
114
|
-
|
178
|
+
~ > rq q submit --infile=joblist
|
115
179
|
|
116
|
-
|
117
|
-
|
118
|
-
~ > rq
|
180
|
+
3) submit a joblist on stdin
|
181
|
+
|
182
|
+
~ > cat joblist | rq q submit -
|
183
|
+
|
184
|
+
or
|
185
|
+
|
186
|
+
~ > rq q submit - <joblist
|
187
|
+
|
188
|
+
4) submit cat as a job, providing the stdin for cat from the file cat.in
|
189
|
+
|
190
|
+
~ > rq q submit cat --stdin=cat.in
|
119
191
|
|
120
|
-
|
192
|
+
5) submit cat as a job, providing the stdin for the cat job on stdin
|
193
|
+
|
194
|
+
~ > cat cat.in | rq q submit cat --stdin=-
|
195
|
+
|
196
|
+
or
|
197
|
+
|
198
|
+
~ > rq q submit cat --stdin=- <cat.in
|
199
|
+
|
200
|
+
6) submit 42 priority 9 jobs from a command file, marking them as
|
121
201
|
'important' using the '--tag, -t' option.
|
122
202
|
|
123
203
|
~ > wc -l cmdfile
|
124
204
|
42
|
205
|
+
|
125
206
|
~ > rq -p9 -timportant q s < cmdfile
|
126
207
|
|
127
|
-
|
208
|
+
6) re-submit all the 'important' jobs (see 'query' section below)
|
128
209
|
|
129
|
-
~ > rq q query tag=important | rq q s
|
210
|
+
~ > rq q query tag=important | rq q s -
|
130
211
|
|
131
|
-
|
212
|
+
8) re-submit all jobs which are already finished (see 'list' section
|
132
213
|
below)
|
133
214
|
|
134
215
|
~ > rq q l f | rq q s
|
135
216
|
|
136
217
|
|
218
|
+
9) stage the job wont_run_yet to the queue in a 'holding' state. no
|
219
|
+
feeder will run this job until it's state is upgraded to 'pending'
|
220
|
+
|
221
|
+
~ > rq q s --stage wont_run_yet
|
222
|
+
|
223
|
+
|
224
|
+
resubmit, r :
|
225
|
+
|
226
|
+
resubmit jobs back to a queue to be proccesed by a feeding node. resubmit
|
227
|
+
is essentially equivalent to submitting a job that is already in the queue
|
228
|
+
as a new job and then deleting the original job except that using resubmit
|
229
|
+
is atomic and, therefore, safer and more efficient. resubmission respects
|
230
|
+
any previous stdin provided for job input. read docs for delete and
|
231
|
+
submit for more info.
|
232
|
+
|
233
|
+
examples :
|
234
|
+
|
235
|
+
0) resubmit job 42 to the queue
|
236
|
+
|
237
|
+
~> rq q resubmit 42
|
238
|
+
|
239
|
+
1) resubmit all failed jobs
|
240
|
+
|
241
|
+
~> rq q query exit_status!=0 | rq q resubmit -
|
242
|
+
|
243
|
+
2) resubmit job 4242 with different stdin
|
244
|
+
|
245
|
+
~ rq q resubmit 4242 --stdin=new_stdin.in
|
246
|
+
|
247
|
+
|
137
248
|
list, l, ls :
|
138
249
|
|
139
250
|
list mode lists jobs of a certain state or job id. state may be one of
|
140
|
-
pending, running, finished, dead, or all. any 'mode_args' that
|
141
|
-
are taken to be job id's to list.
|
251
|
+
pending, holding, running, finished, dead, or all. any 'mode_args' that
|
252
|
+
are numbers are taken to be job id's to list.
|
142
253
|
|
143
254
|
states may be abbreviated to uniqueness, therefore the following shortcuts
|
144
255
|
apply :
|
145
256
|
|
146
257
|
p => pending
|
258
|
+
h => holding
|
147
259
|
r => running
|
148
260
|
f => finished
|
149
261
|
d => dead
|
@@ -153,9 +265,13 @@ MODES
|
|
153
265
|
|
154
266
|
0) show everything in q
|
155
267
|
~ > rq q list all
|
268
|
+
|
156
269
|
or
|
270
|
+
|
157
271
|
~ > rq q l all
|
272
|
+
|
158
273
|
or
|
274
|
+
|
159
275
|
~ > export RQ_Q=q
|
160
276
|
~ > rq l
|
161
277
|
|
@@ -166,31 +282,50 @@ MODES
|
|
166
282
|
~ > rq q list running
|
167
283
|
|
168
284
|
3) show q's finished jobs
|
169
|
-
~ > rq q list
|
285
|
+
~ > rq q list finished
|
170
286
|
|
171
287
|
4) show job id 42
|
172
288
|
~ > rq q l 42
|
173
289
|
|
290
|
+
5) show q's holding jobs
|
291
|
+
~ > rq q list holding
|
292
|
+
|
174
293
|
|
175
294
|
status, t :
|
176
295
|
|
177
|
-
status mode shows the global state the queue
|
178
|
-
the meaning of each
|
296
|
+
status mode shows the global state the queue and statistics on it's the
|
297
|
+
cluster's performance. there are no 'mode_args'. the meaning of each
|
298
|
+
state is as follows:
|
179
299
|
|
180
300
|
pending => no feeder has yet taken this job
|
301
|
+
holding => a hold has been placed on this job, thus no feeder will start
|
302
|
+
it
|
181
303
|
running => a feeder has taken this job
|
182
304
|
finished => a feeder has finished this job
|
183
305
|
dead => rq died while running a job, has restarted, and moved
|
184
306
|
this job to the dead state
|
185
307
|
|
186
|
-
note that rq cannot move jobs into the dead state unless it has
|
187
|
-
|
188
|
-
|
189
|
-
simply taking a very long time. only the
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
308
|
+
note that rq cannot move jobs into the dead state unless it has been
|
309
|
+
restarted. this is because no node has any knowledge of other nodes and
|
310
|
+
cannot possibly know if a job was started on a node that subsequently
|
311
|
+
died, or that it is simply taking a very long time to complete. only the
|
312
|
+
node that dies, upon restart, can determine that it owns jobs that 'were
|
313
|
+
started before it started running jobs', an impossibility, and move these
|
314
|
+
jobs into the dead state.
|
315
|
+
|
316
|
+
normally only a machine crash would cause a job to be placed into the dead
|
317
|
+
state. dead jobs are automatically restarted if, and only if, the job was
|
318
|
+
submitted with the '--restartable' flag.
|
319
|
+
|
320
|
+
status breaks down a variety of canned statistics about a nodes'
|
321
|
+
performance based solely on the jobs currently in the queue. only one
|
322
|
+
option affects the ouput: '--exit'. this option is used to specify
|
323
|
+
additionaly exit code mappings on which to report. normally rq will
|
324
|
+
report any job with an exit code of 0 as being 'successes' and any job
|
325
|
+
with an exit code that is not 0, or a status of 'dead', as being
|
326
|
+
'failures'. if the '--exit' switch is used then additional mappings can
|
327
|
+
be specified, note that the the semantics for 'successes' and 'failures'
|
328
|
+
does not change - this keyword specifies extra mappings.
|
194
329
|
|
195
330
|
examples :
|
196
331
|
|
@@ -198,24 +333,38 @@ MODES
|
|
198
333
|
|
199
334
|
~ > rq q t
|
200
335
|
|
336
|
+
2) show q's status, consider any exit code of 42 will be listed as 'ok'
|
337
|
+
|
338
|
+
~ > rq q t --exit ok=42
|
339
|
+
|
340
|
+
3) show q's status, consider any exit code of 42 or 43 will be listed as
|
341
|
+
'ok' and 127 will be listed as 'command_not_found'. notice the quoting
|
342
|
+
required.
|
343
|
+
|
344
|
+
~ > rq q t --exit 'ok=42,43 command_not_found=127'
|
345
|
+
|
201
346
|
|
202
347
|
delete, d :
|
203
348
|
|
204
|
-
delete combinations of pending,
|
205
|
-
by jid. the delete mode is capable of parsing the output of list and
|
206
|
-
modes, making it possible to create custom filters to delete jobs
|
207
|
-
very specific conditions.
|
349
|
+
delete combinations of pending, holding, finished, dead, or jobs specified
|
350
|
+
by jid. the delete mode is capable of parsing the output of list and
|
351
|
+
query modes, making it possible to create custom filters to delete jobs
|
352
|
+
meeting very specific conditions.
|
353
|
+
|
354
|
+
'mode_args' are the same as for list.
|
208
355
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
356
|
+
note that it is NOT possible to delete a running job. rq has a
|
357
|
+
decentralized architechture which means that compute nodes are completely
|
358
|
+
independant of one another; an extension is that there is no way to
|
359
|
+
communicate the deletion of a running job from the queue the the node
|
360
|
+
actually running that job. it is not an error to force a job to die
|
361
|
+
prematurely using a facility such as an ssh command spawned on the remote
|
362
|
+
host to kill it. once a job has been noted to have finished, whatever the
|
363
|
+
exit status, it can be deleted from the queue.
|
215
364
|
|
216
365
|
examples :
|
217
366
|
|
218
|
-
0) delete all pending,
|
367
|
+
0) delete all pending, finished, and dead jobs from a queue
|
219
368
|
|
220
369
|
~ > rq q d all
|
221
370
|
|
@@ -229,14 +378,26 @@ MODES
|
|
229
378
|
|
230
379
|
3) delete jobs via hand crafted filter program
|
231
380
|
|
232
|
-
~ > rq q list | yaml_filter_prog | rq q d
|
381
|
+
~ > rq q list | yaml_filter_prog | rq q d -
|
382
|
+
|
383
|
+
an example ruby filter program (you have to love this)
|
384
|
+
|
385
|
+
~ > cat yaml_filter_prog
|
386
|
+
require 'yaml'
|
387
|
+
joblist = YAML::load STDIN
|
388
|
+
y joblist.select{|job| job['command'] =~ /bombing_program/}
|
389
|
+
|
390
|
+
this program reads the list of jobs (yaml) from stdin and then dumps
|
391
|
+
only those jobs whose command matches 'bombing_program', which is
|
392
|
+
subsequently piped to the delete command.
|
233
393
|
|
234
394
|
|
235
395
|
update, u :
|
236
396
|
|
237
397
|
update assumes all leading arguments are jids to update with subsequent
|
238
|
-
key=value pairs. currently only the 'command', 'priority', and 'tag'
|
239
|
-
of pending jobs can be updated
|
398
|
+
key=value pairs. currently only the 'command', 'priority', and 'tag'
|
399
|
+
fields of pending jobs can be generically updated and the 'state' field
|
400
|
+
may be toggled between pending and holding.
|
240
401
|
|
241
402
|
examples:
|
242
403
|
|
@@ -248,29 +409,46 @@ MODES
|
|
248
409
|
|
249
410
|
~ > rq q update pending priority=7
|
250
411
|
|
251
|
-
2) query jobs with a command matching 'foobar' and update their command
|
252
|
-
|
412
|
+
2) query jobs with a command matching 'foobar' and update their command
|
413
|
+
to be 'barfoo'
|
253
414
|
|
254
415
|
~ > rq q q "command like '%foobar%'" |\
|
255
416
|
rq q u command=barfoo
|
256
417
|
|
418
|
+
3) place a hold on jid 2
|
419
|
+
|
420
|
+
~ > rq q u 2 state=holding
|
421
|
+
|
422
|
+
4) place a hold on all jobs with tag=disk_filler
|
423
|
+
|
424
|
+
~ > rq q q tag=disk_filler | rq q u state=holding -
|
425
|
+
|
426
|
+
5) remove the hold on jid 2
|
427
|
+
|
428
|
+
~ > rq q u 2 state=pending
|
429
|
+
|
257
430
|
|
258
431
|
query, q :
|
259
432
|
|
260
433
|
query exposes the database more directly the user, evaluating the where
|
261
|
-
clause specified on the command line (or from
|
262
|
-
used to make a fine grained slection of jobs for reporting or as
|
263
|
-
the delete command. you must have a basic understanding of SQL
|
264
|
-
use this feature, but it is fairly intuitive in this limited
|
434
|
+
clause specified on the command line (or read from stdin). this feature
|
435
|
+
can be used to make a fine grained slection of jobs for reporting or as
|
436
|
+
input into the delete command. you must have a basic understanding of SQL
|
437
|
+
syntax to use this feature, but it is fairly intuitive in this limited
|
438
|
+
capacity.
|
265
439
|
|
266
440
|
examples:
|
267
441
|
|
268
442
|
0) show all jobs submitted within a specific 10 minute range
|
269
443
|
|
270
|
-
~ >
|
444
|
+
~ > a='2004-06-29 22:51:00'
|
445
|
+
|
446
|
+
~ > b='2004-06-29 22:51:10'
|
271
447
|
|
272
|
-
|
273
|
-
|
448
|
+
~ > rq q query "started >= '$a' and started < '$b'"
|
449
|
+
|
450
|
+
1) shell quoting can be tricky here so input on stdin is also allowed to
|
451
|
+
avoid shell expansion
|
274
452
|
|
275
453
|
~ > cat constraints.txt
|
276
454
|
started >= '2004-06-29 22:51:00' and
|
@@ -279,13 +457,11 @@ MODES
|
|
279
457
|
~ > rq q query < contraints.txt
|
280
458
|
or (same thing)
|
281
459
|
|
282
|
-
~ > cat contraints.txt| rq q query
|
283
|
-
|
284
|
-
** in general all but numbers will need to be surrounded by single quotes **
|
460
|
+
~ > cat contraints.txt| rq q query -
|
285
461
|
|
286
462
|
2) this query output might then be used to delete those jobs
|
287
463
|
|
288
|
-
~ > cat contraints.txt | rq q q | rq q d
|
464
|
+
~ > cat contraints.txt | rq q q - | rq q d -
|
289
465
|
|
290
466
|
3) show all jobs which are either finished or dead
|
291
467
|
|
@@ -296,22 +472,68 @@ MODES
|
|
296
472
|
~ > rq q query exit_status!=0
|
297
473
|
|
298
474
|
5) if you plan to query groups of jobs with some common feature consider
|
299
|
-
|
300
|
-
|
301
|
-
|
475
|
+
using the '--tag, -t' feature of the submit mode which allows a user to
|
476
|
+
tag a job with a user defined string which can then be used to easily
|
477
|
+
query that job group
|
478
|
+
|
479
|
+
~ > rq q submit --tag=my_jobs - < joblist
|
302
480
|
|
303
|
-
~ > rq q submit --tag=my_jobs < joblist
|
304
481
|
~ > rq q query tag=my_jobs
|
305
482
|
|
306
483
|
|
484
|
+
6) in general all but numbers will need to be surrounded by single
|
485
|
+
quotes unless the query is a 'simple' one. a simple query is a query
|
486
|
+
with no boolean operators, not quotes, and where every part of it looks
|
487
|
+
like
|
488
|
+
|
489
|
+
key op value
|
490
|
+
|
491
|
+
with ** NO SPACES ** between key, op, and value. if, and only if,
|
492
|
+
the query is 'simple' rq will contruct the where clause
|
493
|
+
appropriately. the operators accepted, and their meanings, are
|
494
|
+
|
495
|
+
= : equivalence : sql =
|
496
|
+
=~ : matches : sql like
|
497
|
+
!~ : not matches : sql not like
|
498
|
+
|
499
|
+
match, in the context is ** NOT ** a regular expression but a sql
|
500
|
+
style string match. about all you need to know about sql matches is
|
501
|
+
that the '%' char matches anything. multiple simple queries will be
|
502
|
+
joined with boolean 'and'
|
503
|
+
|
504
|
+
this sounds confusing - it isn't. here are some examples of simple
|
505
|
+
queries
|
506
|
+
|
507
|
+
6.a)
|
508
|
+
query :
|
509
|
+
rq q query tag=important
|
510
|
+
|
511
|
+
where_clause :
|
512
|
+
"( tag = 'important' )"
|
513
|
+
|
514
|
+
6.b)
|
515
|
+
query :
|
516
|
+
rq q q priority=6 restartable=true
|
517
|
+
|
518
|
+
where_clause :
|
519
|
+
"( priority = 6 ) and ( restartable = 'true' )"
|
520
|
+
|
521
|
+
6.c)
|
522
|
+
query :
|
523
|
+
rq q q command=~%bombing_job% runner=~%node_1%
|
524
|
+
|
525
|
+
where_clause :
|
526
|
+
"( command like '%bombing_job%') and (runner like '%node_1%')"
|
527
|
+
|
528
|
+
|
307
529
|
execute, e :
|
308
530
|
|
309
531
|
execute mode is to be used by expert users with a knowledge of sql syntax
|
310
|
-
only. it follows the locking protocol used by rq and then allows
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
532
|
+
only. it follows the locking protocol used by rq and then allows the user
|
533
|
+
to execute arbitrary sql on the queue. unlike query mode a write lock on
|
534
|
+
the queue is obtained allowing a user to definitively shoot themselves in
|
535
|
+
the foot. for details on a queue's schema the file 'db.schema' in the
|
536
|
+
queue directory should be examined.
|
315
537
|
|
316
538
|
examples :
|
317
539
|
|
@@ -328,15 +550,15 @@ MODES
|
|
328
550
|
snapshot, p :
|
329
551
|
|
330
552
|
snapshot provides a means of taking a snapshot of the q. use this feature
|
331
|
-
when many queries are going to be run; for example when attempting to
|
332
|
-
out a complex pipeline command your test queries will not compete
|
333
|
-
feeders for the queue's lock. you should use this option
|
334
|
-
to avoid lock competition.
|
553
|
+
when many queries are going to be run; for example when attempting to
|
554
|
+
figure out a complex pipeline command your test queries will not compete
|
555
|
+
with the feeders for the queue's lock. you should use this option
|
556
|
+
whenever possible to avoid lock competition.
|
335
557
|
|
336
558
|
examples:
|
337
559
|
|
338
560
|
0) take a snapshot using default snapshot naming, which is made via the
|
339
|
-
|
561
|
+
basename of the q plus '.snapshot'
|
340
562
|
|
341
563
|
~ > rq /path/to/nfs/q snapshot
|
342
564
|
|
@@ -363,12 +585,26 @@ MODES
|
|
363
585
|
|
364
586
|
~ > rq q t -s
|
365
587
|
|
588
|
+
** IMPORTANT **
|
589
|
+
|
590
|
+
a really great way to hang all processing in your queue is to do this
|
591
|
+
|
592
|
+
rq q list | less
|
593
|
+
|
594
|
+
and then leave for the night. you hold a read lock you won't release
|
595
|
+
until less dies. this is what snapshot is made for! use it like
|
596
|
+
|
597
|
+
rq q list -s | less
|
598
|
+
|
599
|
+
now you've taken a snapshot of the queue to list so your locks affect no
|
600
|
+
one.
|
601
|
+
|
366
602
|
|
367
603
|
lock, L :
|
368
604
|
|
369
|
-
lock the queue and then execute an arbitrary shell command. lock mode
|
370
|
-
the queue's locking protocol to safely obtain a lock of the specified
|
371
|
-
and execute a command on the user's behalf. lock type must be one of
|
605
|
+
lock the queue and then execute an arbitrary shell command. lock mode
|
606
|
+
uses the queue's locking protocol to safely obtain a lock of the specified
|
607
|
+
type and execute a command on the user's behalf. lock type must be one of
|
372
608
|
|
373
609
|
(r)ead | (sh)ared | (w)rite | (ex)clusive
|
374
610
|
|
@@ -381,6 +617,10 @@ MODES
|
|
381
617
|
(the '--' is needed to tell rq to stop parsing command line
|
382
618
|
options which allows the '-r' to be passed to the 'cp' command)
|
383
619
|
|
620
|
+
** IMPORTANT **
|
621
|
+
|
622
|
+
this is another fantastic way to freeze your queue - use with care!
|
623
|
+
|
384
624
|
|
385
625
|
backup, b :
|
386
626
|
|
@@ -395,75 +635,314 @@ MODES
|
|
395
635
|
|
396
636
|
~ > rq q b q.bak
|
397
637
|
|
398
|
-
help, h :
|
399
638
|
|
400
|
-
|
639
|
+
rotate, r :
|
401
640
|
|
402
|
-
|
641
|
+
rotate mode is conceptually similar to log rolling. normally the list of
|
642
|
+
finished jobs will grow without bound in a queue unless they are manually
|
643
|
+
deleted. rotation is a method of trimming finished jobs from a queue
|
644
|
+
without deleting them. the method used is that the queue is copied to a
|
645
|
+
'rotation'; all jobs that are dead or finished are deleted from the
|
646
|
+
original queue and all pending and running jobs are deleted from the
|
647
|
+
rotation. in this way the rotation becomes a record of the queue's
|
648
|
+
finished and dead jobs at the time the rotation was made.
|
403
649
|
|
404
|
-
0)
|
650
|
+
0) rotate a queue using default rotation name
|
405
651
|
|
406
|
-
|
407
|
-
|
408
|
-
|
652
|
+
~ > rq q rotate
|
653
|
+
|
654
|
+
1) rotate a queue naming the rotation
|
655
|
+
|
656
|
+
~ > rq q rotate q.rotation
|
657
|
+
|
658
|
+
2) a crontab entry like this could be used to rotate a queue daily
|
659
|
+
|
660
|
+
59 23 * * * rq q rotate `date +q.%Y%m%d`
|
409
661
|
|
410
662
|
|
411
663
|
feed, f :
|
412
664
|
|
413
|
-
take jobs from the queue and run them on behalf of the submitter as
|
414
|
-
as possible. jobs are taken from the queue in an 'oldest highest
|
415
|
-
first order.
|
665
|
+
take jobs from the queue and run them on behalf of the submitter as
|
666
|
+
quickly as possible. jobs are taken from the queue in an 'oldest highest
|
667
|
+
priority' first order.
|
416
668
|
|
417
|
-
feeders can be run from any number of nodes allowing you to harness the
|
418
|
-
power of many nodes simoultaneously in order to more effectively
|
419
|
-
your network, anoy your sysads, and set output raids on fire.
|
669
|
+
feeders can be run from any number of nodes allowing you to harness the
|
670
|
+
CPU power of many nodes simoultaneously in order to more effectively
|
671
|
+
clobber your network, anoy your sysads, and set output raids on fire.
|
420
672
|
|
421
|
-
the most useful method of feeding from a queue is to do so in daemon mode
|
422
|
-
that if the process loses it's controling terminal it will not exit
|
423
|
-
exit your terminal session. use the '--daemon, -d' option to
|
424
|
-
this. by default only one feeding process per host per queue
|
425
|
-
run at any given moment. because of this it is acceptable
|
426
|
-
at some regular interval from a cron entry since, if a
|
427
|
-
running, the process will simply exit and otherwise a new
|
428
|
-
started. in this way you may keep feeder processing
|
429
|
-
machine reboots without requiring sysad intervention
|
430
|
-
machine's startup tasks.
|
673
|
+
the most useful method of feeding from a queue is to do so in daemon mode
|
674
|
+
so that if the process loses it's controling terminal it will not exit
|
675
|
+
when you exit your terminal session. use the '--daemon, -d' option to
|
676
|
+
accomplish this. by default only one feeding process per host per queue
|
677
|
+
is allowed to run at any given moment. because of this it is acceptable
|
678
|
+
to start a feeder at some regular interval from a cron entry since, if a
|
679
|
+
feeder is alreay running, the process will simply exit and otherwise a new
|
680
|
+
feeder will be started. in this way you may keep feeder processing
|
681
|
+
running even acroess machine reboots without requiring sysad intervention
|
682
|
+
to add an entry to the machine's startup tasks.
|
431
683
|
|
432
684
|
|
433
685
|
examples :
|
434
686
|
|
435
|
-
0) feed from a queue verbosely for debugging purposes, using a minimum
|
436
|
-
|
437
|
-
|
687
|
+
0) feed from a queue verbosely for debugging purposes, using a minimum
|
688
|
+
and maximum polling time of 2 and 4 respectively. you would NEVER
|
689
|
+
specify polling times this brief except for debugging purposes!!!
|
438
690
|
|
439
|
-
~ > rq q feed -v4
|
691
|
+
~ > rq q feed -v4 --min_sleep=2 --max_sleep=4
|
440
692
|
|
441
693
|
1) same as above, but viewing the executed sql as it is sent to the
|
442
|
-
|
694
|
+
database
|
443
695
|
|
444
|
-
~ > RQ_SQL_DEBUG=1 rq q
|
696
|
+
~ > RQ_SQL_DEBUG=1 rq q feed -v4 --min_sleep=2 --max_sleep=4
|
445
697
|
|
446
698
|
2) feed from a queue in daemon mode - logging to /home/ahoward/rq.log
|
447
699
|
|
448
|
-
~ > rq q
|
700
|
+
~ > rq q feed --daemon -l/home/$USER/rq.log
|
701
|
+
|
702
|
+
log rolling in daemon mode is automatic so your logs should never
|
703
|
+
need to be deleted to prevent disk overflow.
|
704
|
+
|
705
|
+
|
706
|
+
start :
|
707
|
+
|
708
|
+
the start mode is equivalent to running the feed mode except the --daemon
|
709
|
+
is implied so the process instantly goes into the background. also, if no
|
710
|
+
log (--log) is specified in start mode a default one is used. the default
|
711
|
+
is /home/$USER/$BASENAME_OF_Q.log
|
712
|
+
|
713
|
+
examples :
|
714
|
+
|
715
|
+
0) start a daemon process feeding from q
|
449
716
|
|
450
|
-
|
451
|
-
to be deleted to prevent disk overflow.
|
717
|
+
~ > rq q start
|
452
718
|
|
453
|
-
|
454
|
-
|
455
|
-
|
719
|
+
1) use something like this sample crontab entry to keep a feeder running
|
720
|
+
forever - it attempts to (re)start every fifteen minutes but exits if
|
721
|
+
another process is already feeding. output is only created when the
|
722
|
+
daemon is started so your mailbox will not fill up with this crontab
|
723
|
+
entry:
|
456
724
|
|
457
725
|
#
|
458
|
-
#
|
726
|
+
# crontab.sample
|
459
727
|
#
|
460
728
|
|
461
|
-
*/15 * * * * /
|
729
|
+
*/15 * * * * /path/to/bin/rq /path/to/q start
|
730
|
+
|
731
|
+
and entry like this on every node in your cluster is all that's needed
|
732
|
+
to keep your cluster going - even after a reboot.
|
733
|
+
|
462
734
|
|
463
|
-
|
464
|
-
|
465
|
-
|
735
|
+
shutdown :
|
736
|
+
|
737
|
+
tell a running feeder to finish any pending jobs and then to exit. this
|
738
|
+
is equivalent to sending signal 'SIGTERM' to the process - this is what
|
739
|
+
using 'kill pid' does by default.
|
740
|
+
|
741
|
+
examples :
|
466
742
|
|
743
|
+
0) stop a feeding process, if any, that is feeding from q. allow all
|
744
|
+
jobs to be finished first.
|
745
|
+
|
746
|
+
~ > rq q shutdown
|
747
|
+
|
748
|
+
** VERY IMPORTANT **
|
749
|
+
|
750
|
+
if you are keeping your feeder alive with a crontab entry you'll need to
|
751
|
+
comment it out before doing this or else it will simply re-start!!!
|
752
|
+
|
753
|
+
stop :
|
754
|
+
|
755
|
+
tell any running feeder to stop NOW. this sends signal 'SIGKILL' (-9) to
|
756
|
+
the feeder process. the same warning as for shutdown applies!!!
|
757
|
+
|
758
|
+
examples :
|
759
|
+
|
760
|
+
0) stop a feeding process, if any, that is feeding from q. allow NO
|
761
|
+
jobs to be finished first - exit instantly.
|
762
|
+
|
763
|
+
~ > rq q stop
|
764
|
+
|
765
|
+
cron :
|
766
|
+
|
767
|
+
when given 'start' for 'mode_args' this option automatically adds a
|
768
|
+
crontab entry to keep a feeder alive indefinitely and starts a feeder in
|
769
|
+
the background. this is a shortcut to start a feeder and ensure it stays
|
770
|
+
running forever, even across re-boots.
|
771
|
+
|
772
|
+
'stop' as an argument applys the inverse option: any crontab entry is
|
773
|
+
removed and the daemon shutdown nicely. a second argument of 'hard' will
|
774
|
+
do a stop instead of a shutdown.
|
775
|
+
|
776
|
+
the addition and subtraction of crontab entries is robust, however, if you
|
777
|
+
already have crontab lines maintaining your feeders with a vastly
|
778
|
+
different syntax it would be best to shut down, remove them, and then let
|
779
|
+
rq manage them. then again, some people are quite brave...
|
780
|
+
|
781
|
+
examples :
|
782
|
+
|
783
|
+
0) automatically add crontab entry and start daemon feeder
|
784
|
+
|
785
|
+
~ > rq q cron start
|
786
|
+
|
787
|
+
1) automatically remove crontab entry and shutdown daemon feeder nicely
|
788
|
+
|
789
|
+
~ > rq q cron shutdown
|
790
|
+
|
791
|
+
2) the same, but using stop instead of shutdown
|
792
|
+
|
793
|
+
~ > rq q cron stop
|
794
|
+
|
795
|
+
pid :
|
796
|
+
|
797
|
+
show the pid, if any, of the feeder on this host
|
798
|
+
|
799
|
+
~ > rq q feeder
|
800
|
+
---
|
801
|
+
pid : 3176
|
802
|
+
|
803
|
+
|
804
|
+
ioview, io :
|
805
|
+
|
806
|
+
as shown in the description for submit, a job maybe be provided stdin
|
807
|
+
during job submission. the stdout and stderr of the job are also captured
|
808
|
+
as the job is run. all three streams are captured in files located
|
809
|
+
relative to the queue. so, if one has submitted a job, and it's jid was
|
810
|
+
shown to be 42, by using something like
|
811
|
+
|
812
|
+
~ > rq /path/to/q submit myjob --stdin=myjob.in
|
813
|
+
---
|
814
|
+
-
|
815
|
+
jid : 42
|
816
|
+
priority : 0
|
817
|
+
...
|
818
|
+
stdin : stdin/42
|
819
|
+
stdout : stdout/42
|
820
|
+
stderr : stderr/42
|
821
|
+
...
|
822
|
+
command : myjob
|
823
|
+
|
824
|
+
the stdin file will exists as soon as the job is submitted and the others
|
825
|
+
will exist once the job has begun running. note that these paths are
|
826
|
+
shown relative to the queue. in this case the actual paths would be
|
827
|
+
|
828
|
+
/path/to/q/stdin/42
|
829
|
+
/path/to/q/stdout/42
|
830
|
+
/path/to/q/stderr/42
|
831
|
+
|
832
|
+
but, since our queue is nfs mounted the /path/to/q may or may not be the
|
833
|
+
same on every host. thus the path is a relative one. this can make it
|
834
|
+
anoying to view these files, but rq assists here with the ioview command.
|
835
|
+
the ioview command spawns an external editor to view all three files.
|
836
|
+
it's use is quite simple
|
837
|
+
|
838
|
+
examples :
|
839
|
+
|
840
|
+
0) view the stdin/stdout/stderr of job id 42
|
841
|
+
|
842
|
+
~ > rq q ioview 42
|
843
|
+
|
844
|
+
by default this will open up all three files in vim. the editor command
|
845
|
+
can be specified using the '--editor' option or the ENV var RQ_EDITOR.
|
846
|
+
the default value is 'vim -R -o' which allows all three files to be opened
|
847
|
+
in a single window.
|
848
|
+
|
849
|
+
|
850
|
+
stdin, 0 :
|
851
|
+
|
852
|
+
dump the stdinput (if any) provided to the job
|
853
|
+
|
854
|
+
examples :
|
855
|
+
|
856
|
+
0) dump the stdin for jid 42
|
857
|
+
|
858
|
+
~ > rq q stdin 42
|
859
|
+
|
860
|
+
|
861
|
+
stdout, 1 :
|
862
|
+
|
863
|
+
dump the stdoutput (if any) created by the job
|
864
|
+
|
865
|
+
examples :
|
866
|
+
|
867
|
+
0) dump the stdout for jid 42
|
868
|
+
|
869
|
+
~ > rq q stdout 42
|
870
|
+
|
871
|
+
|
872
|
+
stderr, 2 :
|
873
|
+
|
874
|
+
dump the stderrput (if any) created by the job
|
875
|
+
|
876
|
+
examples :
|
877
|
+
|
878
|
+
0) dump the stderr for jid 42
|
879
|
+
|
880
|
+
~ > rq q stderr 42
|
881
|
+
|
882
|
+
|
883
|
+
stdin4 :
|
884
|
+
|
885
|
+
show the path used for the stdin of a jid
|
886
|
+
|
887
|
+
examples :
|
888
|
+
|
889
|
+
0) show which file has job 42's stdin
|
890
|
+
|
891
|
+
~ > rq q stdin4 42
|
892
|
+
|
893
|
+
|
894
|
+
stdout4 :
|
895
|
+
|
896
|
+
show the path used for the stdout of a jid
|
897
|
+
|
898
|
+
examples :
|
899
|
+
|
900
|
+
0) show which file has job 42's stdout
|
901
|
+
|
902
|
+
~ > rq q stdout4 42
|
903
|
+
|
904
|
+
|
905
|
+
stderr4 :
|
906
|
+
|
907
|
+
show the path used for the stderr of a jid
|
908
|
+
|
909
|
+
examples :
|
910
|
+
|
911
|
+
0) show which file has job 42's stderr
|
912
|
+
|
913
|
+
~ > rq q stderr4 42
|
914
|
+
|
915
|
+
|
916
|
+
recover :
|
917
|
+
|
918
|
+
it is possible that a hardware failure might corrupt an rq database. this
|
919
|
+
isn't the kind of thing people like hearing, but it's true - hardware has
|
920
|
+
errors. in these situations a database can sometimes be readable, but not
|
921
|
+
writable, or some other combination. this has been reported only a
|
922
|
+
handful of times, nevertheless, this command wraps sqlite recovery to get
|
923
|
+
you rolling again, it's acceptable to perform recovery on a live rq
|
924
|
+
database with active feeders
|
925
|
+
|
926
|
+
examples :
|
927
|
+
|
928
|
+
0) recover!
|
929
|
+
|
930
|
+
~ > rq q recover
|
931
|
+
|
932
|
+
|
933
|
+
help, h :
|
934
|
+
|
935
|
+
this message
|
936
|
+
|
937
|
+
examples :
|
938
|
+
|
939
|
+
0) get this message
|
940
|
+
|
941
|
+
~> rq q help
|
942
|
+
|
943
|
+
or
|
944
|
+
|
945
|
+
~> rq help
|
467
946
|
|
468
947
|
NOTES
|
469
948
|
- realize that your job is going to be running on a remote host and this has
|
@@ -477,20 +956,43 @@ NOTES
|
|
477
956
|
setting. you should not, however, rely on jobs running with any given
|
478
957
|
environment.
|
479
958
|
|
480
|
-
- you need to consider __CAREFULLY__ what the ramifications of having
|
481
|
-
instances of your program all potentially running at the same
|
482
|
-
for instance, it is beyond the scope of rq to ensure
|
483
|
-
instances of a given program will not overwrite each others
|
484
|
-
coordination of programs is left entirely to the user.
|
959
|
+
- you need to consider __CAREFULLY__ what the ramifications of having
|
960
|
+
multiple instances of your program all potentially running at the same
|
961
|
+
time will be. for instance, it is beyond the scope of rq to ensure
|
962
|
+
multiple instances of a given program will not overwrite each others
|
963
|
+
output files. coordination of programs is left entirely to the user.
|
485
964
|
|
486
965
|
- the list of finished jobs will grow without bound unless you sometimes
|
487
|
-
delete some (all) of them. the reason for this is that rq cannot
|
488
|
-
|
489
|
-
|
490
|
-
|
966
|
+
delete some (all) of them. the reason for this is that rq cannot know
|
967
|
+
when the user has collected the exit_status of a given job, and so keeps
|
968
|
+
this information in the queue forever until instructed to delete it. if
|
969
|
+
you have collected the exit_status of you job(s) it is not an error to
|
491
970
|
then delete that job from the finished list - the information is kept for
|
492
|
-
your informational purposes only. in a production system it would be
|
493
|
-
to periodically save, and then delete, all finished jobs.
|
971
|
+
your informational purposes only. in a production system it would be
|
972
|
+
normal to periodically save, and then delete, all finished jobs.
|
973
|
+
|
974
|
+
- know that it is a VERY bad idea to spawn several dozen process all
|
975
|
+
reading/writing huge output files to a single NFS server. use this
|
976
|
+
paradigm instead
|
977
|
+
|
978
|
+
* copy/move data from global input space to local disk
|
979
|
+
* process data
|
980
|
+
* move data on local disk to global output space
|
981
|
+
|
982
|
+
this, of course, applies to any nfs processing, not just those jobs
|
983
|
+
submitted to rq
|
984
|
+
|
985
|
+
the vsftp daemon is an excellent utility to have running on hosts in your
|
986
|
+
cluster so anonymous ftp can be used to get/put data between any two
|
987
|
+
hosts.
|
988
|
+
|
989
|
+
- know that nfs locking is very, very easy to break with firewalls put in
|
990
|
+
place by overzealous system administrators. be postive not only that nfs
|
991
|
+
locking works, but that lock recovery server/client crash or reboot works
|
992
|
+
as well. http://nfs.sourceforge.net/ is the place to learn about NFS. my
|
993
|
+
experience thus far is that there are ZERO properly configured NFS
|
994
|
+
installations in the world. please test yours. contact me for a simple
|
995
|
+
script which can assist you. beer donations required as payment.
|
494
996
|
|
495
997
|
ENVIRONMENT
|
496
998
|
RQ_Q: set to the full path of nfs mounted queue
|
@@ -501,43 +1003,99 @@ ENVIRONMENT
|
|
501
1003
|
~ > export RQ_Q=/full/path/to/my/q
|
502
1004
|
|
503
1005
|
this feature can save a considerable amount of typing for those weak of
|
504
|
-
wrist.
|
1006
|
+
wrist.
|
1007
|
+
|
1008
|
+
a shell script like this can also be used to avoid needing to type the
|
1009
|
+
queue name each and every time
|
1010
|
+
|
1011
|
+
~ > cat my_q
|
1012
|
+
#!/bin/sh
|
1013
|
+
rq /full/path/to/my/q "$@"
|
1014
|
+
|
1015
|
+
and then all operations become, for example
|
1016
|
+
|
1017
|
+
~> my_q submit my_mob
|
1018
|
+
~> my_q status
|
1019
|
+
~> my_q delete 42
|
1020
|
+
|
1021
|
+
RQ_OPTS | RQ_OPTIONS: specify extra options
|
1022
|
+
|
1023
|
+
this ENV var can be used to specify options which should always apply, for
|
1024
|
+
example
|
1025
|
+
|
1026
|
+
~ > export RQ_OPTS=--restartable
|
1027
|
+
|
1028
|
+
and shell script like this might be used to mark jobs submitted by a
|
1029
|
+
certain user and to always submit them at a negative priority
|
1030
|
+
|
1031
|
+
~ > cat username_q
|
1032
|
+
#!/bin/sh
|
1033
|
+
export RQ_OPTS="--tag=username --priority=-42"
|
1034
|
+
rq /full/path/to/my/q "$@"
|
1035
|
+
|
1036
|
+
actual command line options wil always override options given this way
|
505
1037
|
|
506
1038
|
DIAGNOSTICS
|
507
1039
|
success : $? == 0
|
508
1040
|
failure : $? != 0
|
509
1041
|
|
1042
|
+
CREDITS
|
1043
|
+
- kim baugh : patient tester and design input
|
1044
|
+
- jeff safran : the guy can break anything
|
1045
|
+
- chris elvidge : boss who made it possible
|
1046
|
+
- trond myklebust : tons of help with nfs
|
1047
|
+
- jamis buck : for writing the sqlite bindings for ruby
|
1048
|
+
- _why : for writing yaml for ruby
|
1049
|
+
- matz : for writing ruby
|
1050
|
+
|
510
1051
|
AUTHOR
|
511
|
-
ara.t.howard@
|
1052
|
+
ara.t.howard@gmail.com
|
512
1053
|
|
513
1054
|
BUGS
|
514
1055
|
0 < bugno && bugno <= 42
|
515
1056
|
|
516
|
-
reports to ara.t.howard@
|
1057
|
+
reports to ara.t.howard@gmail.com
|
517
1058
|
|
518
1059
|
OPTIONS
|
519
1060
|
--priority=priority, -p
|
520
|
-
modes <submit> : set the job(s) priority - lowest(0) ..
|
521
|
-
(default 0)
|
1061
|
+
modes <submit, resubmit> : set the job(s) priority - lowest(0) ..
|
1062
|
+
highest(n) - (default 0)
|
522
1063
|
--tag=tag, -t
|
523
|
-
modes <submit> : set the job(s) user data tag
|
1064
|
+
modes <submit, resubmit> : set the job(s) user data tag
|
1065
|
+
--runner=runner
|
1066
|
+
modes <submit, resubmit> : set the job(s) required runner(s)
|
1067
|
+
--restartable
|
1068
|
+
modes <submit, resubmit> : set the job(s) to be restartable on node
|
1069
|
+
reboot
|
1070
|
+
--stage
|
1071
|
+
modes <submit, resubmit> : set the job(s) initial state to be holding
|
1072
|
+
(default pending)
|
524
1073
|
--infile=infile, -i
|
525
|
-
modes <submit> : infile
|
1074
|
+
modes <submit, resubmit> : infile
|
1075
|
+
--stdin=[stdin], -s
|
1076
|
+
modes <submit, resubmit, update> : stdin
|
526
1077
|
--quiet, -q
|
527
|
-
modes <submit, feed> : do not echo submitted jobs, fail
|
528
|
-
another process is already feeding
|
529
|
-
--daemon, -
|
1078
|
+
modes <submit, resubmit, feed> : do not echo submitted jobs, fail
|
1079
|
+
silently if another process is already feeding
|
1080
|
+
--daemon, -D
|
530
1081
|
modes <feed> : spawn a daemon
|
531
|
-
--max_feed=max_feed
|
1082
|
+
--max_feed=max_feed
|
532
1083
|
modes <feed> : the maximum number of concurrent jobs run
|
533
|
-
--retries=retries
|
1084
|
+
--retries=retries
|
534
1085
|
modes <feed> : specify transaction retries
|
535
|
-
--min_sleep=min_sleep
|
1086
|
+
--min_sleep=min_sleep
|
536
1087
|
modes <feed> : specify min sleep
|
537
|
-
--max_sleep=max_sleep
|
1088
|
+
--max_sleep=max_sleep
|
538
1089
|
modes <feed> : specify max sleep
|
1090
|
+
--exit=exit_code_map
|
1091
|
+
modes <status> : specify and exit code map
|
1092
|
+
--fields=fields, -f
|
1093
|
+
limit which fields of output to display
|
539
1094
|
--snapshot, -s
|
540
1095
|
operate on snapshot of queue
|
1096
|
+
--editor=editor, -e
|
1097
|
+
editor command capable of opening multiple files at once = (default
|
1098
|
+
ENV["RQ_EDITOR"] || "vim -R -o")
|
541
1099
|
--verbosity=verbostiy, -v
|
542
1100
|
0|fatal < 1|error < 2|warn < 3|info < 4|debug - (default info)
|
543
1101
|
--log=path, -l
|
@@ -547,6 +1105,10 @@ OPTIONS
|
|
547
1105
|
nil)
|
548
1106
|
--log_size=log_size
|
549
1107
|
size in bytes - what size will cause log rolling (default nil)
|
1108
|
+
--dot_rq_dir=[dot_rq_dir]
|
1109
|
+
base dir for log/pidfile storage (default ~/.rq/full/path/to/queue)
|
550
1110
|
--help, -h
|
551
1111
|
this message
|
1112
|
+
--version
|
1113
|
+
show version number
|
552
1114
|
|