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.
Files changed (723) hide show
  1. data/INSTALL +21 -0
  2. data/README +752 -190
  3. data/TODO +18 -11
  4. data/TUTORIAL +230 -0
  5. data/all/install.rb +127 -0
  6. data/all/install.sh +165 -0
  7. data/all/packages/INSTALL +5 -0
  8. data/all/packages/arrayfields-3.6.0.tgz +0 -0
  9. data/all/packages/lockfile-1.4.1.tgz +0 -0
  10. data/all/packages/posixlock-0.0.1.tgz +0 -0
  11. data/all/packages/ruby-1.8.6.tgz +0 -0
  12. data/all/packages/rubygems-0.9.2.tgz +0 -0
  13. data/all/packages/sqlite-2.8.15.tar.gz +0 -0
  14. data/all/packages/sqlite-ruby-1.3.1.tar.gz +0 -0
  15. data/bin/rq +830 -361
  16. data/bin/rq-3.0.0 +860 -0
  17. data/doc/classes/ARGV.html +134 -0
  18. data/doc/classes/ARGV.src/M000036.html +36 -0
  19. data/doc/classes/ARGV.src/M000037.html +25 -0
  20. data/doc/classes/OrderedHash.html +1043 -0
  21. data/doc/classes/OrderedHash.src/M000003.html +26 -0
  22. data/doc/classes/OrderedHash.src/M000004.html +31 -0
  23. data/doc/classes/OrderedHash.src/M000005.html +23 -0
  24. data/doc/classes/OrderedHash.src/M000006.html +23 -0
  25. data/doc/classes/OrderedHash.src/M000007.html +24 -0
  26. data/doc/classes/OrderedHash.src/M000009.html +24 -0
  27. data/doc/classes/OrderedHash.src/M000010.html +24 -0
  28. data/doc/classes/OrderedHash.src/M000011.html +24 -0
  29. data/doc/classes/OrderedHash.src/M000012.html +24 -0
  30. data/doc/classes/OrderedHash.src/M000013.html +24 -0
  31. data/doc/classes/OrderedHash.src/M000014.html +24 -0
  32. data/doc/classes/OrderedHash.src/M000016.html +26 -0
  33. data/doc/classes/OrderedHash.src/M000017.html +25 -0
  34. data/doc/classes/OrderedHash.src/M000018.html +23 -0
  35. data/doc/classes/OrderedHash.src/M000019.html +25 -0
  36. data/doc/classes/OrderedHash.src/M000020.html +23 -0
  37. data/doc/classes/OrderedHash.src/M000021.html +24 -0
  38. data/doc/classes/OrderedHash.src/M000022.html +24 -0
  39. data/doc/classes/OrderedHash.src/M000023.html +24 -0
  40. data/doc/classes/OrderedHash.src/M000024.html +29 -0
  41. data/doc/classes/OrderedHash.src/M000025.html +29 -0
  42. data/doc/classes/OrderedHash.src/M000026.html +24 -0
  43. data/doc/classes/OrderedHash.src/M000027.html +25 -0
  44. data/doc/classes/OrderedHash.src/M000028.html +23 -0
  45. data/doc/classes/OrderedHash.src/M000029.html +25 -0
  46. data/doc/classes/OrderedHash.src/M000030.html +24 -0
  47. data/doc/classes/OrderedHash.src/M000032.html +23 -0
  48. data/doc/classes/OrderedHash.src/M000033.html +25 -0
  49. data/doc/classes/OrderedHash.src/M000034.html +36 -0
  50. data/doc/classes/OrderedHash.src/M000035.html +23 -0
  51. data/doc/classes/RQ.html +647 -0
  52. data/doc/classes/RQ/Backer.html +240 -0
  53. data/doc/classes/RQ/Backer.src/M000121.html +31 -0
  54. data/doc/classes/RQ/ConfigFile.html +416 -0
  55. data/doc/classes/RQ/ConfigFile.src/M000100.html +34 -0
  56. data/doc/classes/RQ/ConfigFile.src/M000101.html +26 -0
  57. data/doc/classes/RQ/ConfigFile.src/M000102.html +33 -0
  58. data/doc/classes/RQ/ConfigFile.src/M000103.html +25 -0
  59. data/doc/classes/RQ/ConfigFile.src/M000104.html +34 -0
  60. data/doc/classes/RQ/ConfigFile.src/M000105.html +25 -0
  61. data/doc/classes/RQ/Configurator.html +249 -0
  62. data/doc/classes/RQ/Configurator.src/M000122.html +40 -0
  63. data/doc/classes/RQ/Creator.html +264 -0
  64. data/doc/classes/RQ/Creator.src/M000157.html +32 -0
  65. data/doc/classes/RQ/Cron.html +461 -0
  66. data/doc/classes/RQ/Deleter.html +259 -0
  67. data/doc/classes/RQ/Deleter.src/M000078.html +52 -0
  68. data/doc/classes/RQ/Executor.html +249 -0
  69. data/doc/classes/RQ/Executor.src/M000099.html +45 -0
  70. data/doc/classes/RQ/Feeder.html +1131 -0
  71. data/doc/classes/RQ/Feeder.src/M000079.html +67 -0
  72. data/doc/classes/RQ/Feeder.src/M000080.html +47 -0
  73. data/doc/classes/RQ/Feeder.src/M000081.html +98 -0
  74. data/doc/classes/RQ/Feeder.src/M000082.html +25 -0
  75. data/doc/classes/RQ/Feeder.src/M000083.html +30 -0
  76. data/doc/classes/RQ/Feeder.src/M000084.html +58 -0
  77. data/doc/classes/RQ/Feeder.src/M000085.html +37 -0
  78. data/doc/classes/RQ/Feeder.src/M000086.html +40 -0
  79. data/doc/classes/RQ/Feeder.src/M000087.html +37 -0
  80. data/doc/classes/RQ/Feeder.src/M000088.html +35 -0
  81. data/doc/classes/RQ/Feeder.src/M000089.html +47 -0
  82. data/doc/classes/RQ/Feeder.src/M000090.html +25 -0
  83. data/doc/classes/RQ/Feeder.src/M000091.html +78 -0
  84. data/doc/classes/RQ/Feeder.src/M000092.html +34 -0
  85. data/doc/classes/RQ/Feeder.src/M000093.html +36 -0
  86. data/doc/classes/RQ/Feeder.src/M000094.html +25 -0
  87. data/doc/classes/RQ/Feeder.src/M000095.html +27 -0
  88. data/doc/classes/RQ/IOViewer.html +256 -0
  89. data/doc/classes/RQ/Job.html +304 -0
  90. data/doc/classes/RQ/Job.src/M000168.html +26 -0
  91. data/doc/classes/RQ/Job.src/M000169.html +37 -0
  92. data/doc/classes/RQ/Job.src/M000170.html +23 -0
  93. data/doc/classes/RQ/Job/Methods.html +210 -0
  94. data/doc/classes/RQ/JobQueue.html +1780 -0
  95. data/doc/classes/RQ/JobQueue.src/M000176.html +31 -0
  96. data/doc/classes/RQ/JobQueue.src/M000177.html +34 -0
  97. data/doc/classes/RQ/JobQueue.src/M000178.html +60 -0
  98. data/doc/classes/RQ/JobQueue.src/M000179.html +63 -0
  99. data/doc/classes/RQ/JobQueue.src/M000180.html +73 -0
  100. data/doc/classes/RQ/JobQueue.src/M000181.html +217 -0
  101. data/doc/classes/RQ/JobQueue.src/M000182.html +50 -0
  102. data/doc/classes/RQ/JobQueue.src/M000183.html +83 -0
  103. data/doc/classes/RQ/JobQueue.src/M000184.html +25 -0
  104. data/doc/classes/RQ/JobQueue.src/M000185.html +83 -0
  105. data/doc/classes/RQ/JobQueue.src/M000186.html +28 -0
  106. data/doc/classes/RQ/JobQueue.src/M000187.html +26 -0
  107. data/doc/classes/RQ/JobQueue.src/M000188.html +26 -0
  108. data/doc/classes/RQ/JobQueue.src/M000189.html +32 -0
  109. data/doc/classes/RQ/JobQueue.src/M000190.html +30 -0
  110. data/doc/classes/RQ/JobQueue.src/M000191.html +37 -0
  111. data/doc/classes/RQ/JobQueue.src/M000192.html +36 -0
  112. data/doc/classes/RQ/JobQueue.src/M000193.html +25 -0
  113. data/doc/classes/RQ/JobQueue.src/M000194.html +25 -0
  114. data/doc/classes/RQ/JobQueue.src/M000195.html +25 -0
  115. data/doc/classes/RQ/JobQueue.src/M000196.html +25 -0
  116. data/doc/classes/RQ/JobQueue.src/M000197.html +25 -0
  117. data/doc/classes/RQ/JobQueue.src/M000198.html +73 -0
  118. data/doc/classes/RQ/JobQueue.src/M000199.html +25 -0
  119. data/doc/classes/RQ/JobQueue.src/M000200.html +38 -0
  120. data/doc/classes/RQ/JobQueue.src/M000201.html +28 -0
  121. data/doc/classes/RQ/JobQueue/Error.html +187 -0
  122. data/doc/classes/RQ/JobRunner.html +386 -0
  123. data/doc/classes/RQ/JobRunner.src/M000117.html +53 -0
  124. data/doc/classes/RQ/JobRunner.src/M000118.html +26 -0
  125. data/doc/classes/RQ/JobRunnerDaemon.html +590 -0
  126. data/doc/classes/RQ/JobRunnerDaemon.src/M000159.html +94 -0
  127. data/doc/classes/RQ/JobRunnerDaemon.src/M000160.html +27 -0
  128. data/doc/classes/RQ/JobRunnerDaemon.src/M000161.html +39 -0
  129. data/doc/classes/RQ/JobRunnerDaemon.src/M000162.html +27 -0
  130. data/doc/classes/RQ/JobRunnerDaemon.src/M000163.html +27 -0
  131. data/doc/classes/RQ/JobRunnerDaemon.src/M000164.html +28 -0
  132. data/doc/classes/RQ/JobRunnerDaemon.src/M000165.html +28 -0
  133. data/doc/classes/RQ/JobRunnerDaemon.src/M000166.html +37 -0
  134. data/doc/classes/RQ/JobRunnerDaemon.src/M000167.html +25 -0
  135. data/doc/classes/RQ/Lister.html +256 -0
  136. data/doc/classes/RQ/Lister.src/M000156.html +52 -0
  137. data/doc/classes/RQ/Locker.html +250 -0
  138. data/doc/classes/RQ/Locker.src/M000120.html +40 -0
  139. data/doc/classes/RQ/Logging.html +296 -0
  140. data/doc/classes/RQ/Logging.src/M000067.html +28 -0
  141. data/doc/classes/RQ/Logging/LogClassMethods.html +254 -0
  142. data/doc/classes/RQ/Logging/LogClassMethods.src/M000068.html +32 -0
  143. data/doc/classes/RQ/Logging/LogClassMethods.src/M000069.html +28 -0
  144. data/doc/classes/RQ/Logging/LogMethods.html +404 -0
  145. data/doc/classes/RQ/Logging/LogMethods.src/M000070.html +35 -0
  146. data/doc/classes/RQ/Logging/LogMethods.src/M000071.html +28 -0
  147. data/doc/classes/RQ/Logging/LogMethods.src/M000072.html +21 -0
  148. data/doc/classes/RQ/Logging/LogMethods.src/M000073.html +21 -0
  149. data/doc/classes/RQ/Logging/LogMethods.src/M000074.html +21 -0
  150. data/doc/classes/RQ/Logging/LogMethods.src/M000075.html +21 -0
  151. data/doc/classes/RQ/Logging/LogMethods.src/M000076.html +21 -0
  152. data/doc/classes/RQ/Logging/LogMethods.src/M000077.html +29 -0
  153. data/doc/classes/RQ/Logging/LoggerExt.html +194 -0
  154. data/doc/classes/RQ/Main.html +2110 -0
  155. data/doc/classes/RQ/MainHelper.html +607 -0
  156. data/doc/classes/RQ/MainHelper.src/M000171.html +33 -0
  157. data/doc/classes/RQ/MainHelper.src/M000172.html +32 -0
  158. data/doc/classes/RQ/MainHelper.src/M000173.html +44 -0
  159. data/doc/classes/RQ/OrderedAutoHash.html +258 -0
  160. data/doc/classes/RQ/OrderedAutoHash.src/M000205.html +25 -0
  161. data/doc/classes/RQ/OrderedAutoHash.src/M000206.html +25 -0
  162. data/doc/classes/RQ/QDB.html +1653 -0
  163. data/doc/classes/RQ/QDB.src/M000126.html +25 -0
  164. data/doc/classes/RQ/QDB.src/M000127.html +37 -0
  165. data/doc/classes/RQ/QDB.src/M000128.html +27 -0
  166. data/doc/classes/RQ/QDB.src/M000129.html +27 -0
  167. data/doc/classes/RQ/QDB.src/M000130.html +27 -0
  168. data/doc/classes/RQ/QDB.src/M000131.html +31 -0
  169. data/doc/classes/RQ/QDB.src/M000132.html +32 -0
  170. data/doc/classes/RQ/QDB.src/M000133.html +30 -0
  171. data/doc/classes/RQ/QDB.src/M000134.html +91 -0
  172. data/doc/classes/RQ/QDB.src/M000135.html +26 -0
  173. data/doc/classes/RQ/QDB.src/M000136.html +46 -0
  174. data/doc/classes/RQ/QDB.src/M000137.html +26 -0
  175. data/doc/classes/RQ/QDB.src/M000138.html +51 -0
  176. data/doc/classes/RQ/QDB.src/M000139.html +61 -0
  177. data/doc/classes/RQ/QDB.src/M000140.html +57 -0
  178. data/doc/classes/RQ/QDB.src/M000141.html +25 -0
  179. data/doc/classes/RQ/QDB.src/M000142.html +25 -0
  180. data/doc/classes/RQ/QDB.src/M000143.html +37 -0
  181. data/doc/classes/RQ/QDB.src/M000144.html +107 -0
  182. data/doc/classes/RQ/QDB.src/M000145.html +40 -0
  183. data/doc/classes/RQ/QDB.src/M000146.html +34 -0
  184. data/doc/classes/RQ/QDB.src/M000147.html +33 -0
  185. data/doc/classes/RQ/QDB.src/M000148.html +32 -0
  186. data/doc/classes/RQ/QDB.src/M000149.html +98 -0
  187. data/doc/classes/RQ/QDB.src/M000150.html +26 -0
  188. data/doc/classes/RQ/QDB.src/M000151.html +31 -0
  189. data/doc/classes/RQ/QDB.src/M000154.html +26 -0
  190. data/doc/classes/RQ/QDB/AbortedTransactionError.html +187 -0
  191. data/doc/classes/RQ/QDB/RollbackTransactionError.html +187 -0
  192. data/doc/classes/RQ/Querier.html +328 -0
  193. data/doc/classes/RQ/Querier.src/M000203.html +45 -0
  194. data/doc/classes/RQ/Querier.src/M000204.html +78 -0
  195. data/doc/classes/RQ/ReSubmitter.html +307 -0
  196. data/doc/classes/RQ/ReSubmitter.src/M000098.html +111 -0
  197. data/doc/classes/RQ/Recoverer.html +247 -0
  198. data/doc/classes/RQ/Refresher.html +346 -0
  199. data/doc/classes/RQ/Refresher.src/M000174.html +51 -0
  200. data/doc/classes/RQ/Refresher.src/M000175.html +44 -0
  201. data/doc/classes/RQ/Relayer.html +723 -0
  202. data/doc/classes/RQ/Relayer.src/M000106.html +91 -0
  203. data/doc/classes/RQ/Relayer.src/M000107.html +47 -0
  204. data/doc/classes/RQ/Relayer.src/M000108.html +46 -0
  205. data/doc/classes/RQ/Relayer.src/M000109.html +26 -0
  206. data/doc/classes/RQ/Relayer.src/M000110.html +46 -0
  207. data/doc/classes/RQ/Relayer.src/M000111.html +40 -0
  208. data/doc/classes/RQ/Relayer.src/M000112.html +37 -0
  209. data/doc/classes/RQ/Relayer.src/M000113.html +40 -0
  210. data/doc/classes/RQ/Relayer.src/M000114.html +27 -0
  211. data/doc/classes/RQ/Relayer.src/M000115.html +25 -0
  212. data/doc/classes/RQ/Relayer.src/M000116.html +38 -0
  213. data/doc/classes/RQ/Resource.html +187 -0
  214. data/doc/classes/RQ/ResourceManager.html +276 -0
  215. data/doc/classes/RQ/Rotater.html +324 -0
  216. data/doc/classes/RQ/Rotater.src/M000158.html +71 -0
  217. data/doc/classes/RQ/SleepCycle.html +322 -0
  218. data/doc/classes/RQ/SleepCycle.src/M000123.html +32 -0
  219. data/doc/classes/RQ/SleepCycle.src/M000124.html +27 -0
  220. data/doc/classes/RQ/SleepCycle.src/M000125.html +25 -0
  221. data/doc/classes/RQ/Snapshotter.html +250 -0
  222. data/doc/classes/RQ/Snapshotter.src/M000097.html +35 -0
  223. data/doc/classes/RQ/StatusLister.html +289 -0
  224. data/doc/classes/RQ/StatusLister.src/M000096.html +26 -0
  225. data/doc/classes/RQ/Submitter.html +319 -0
  226. data/doc/classes/RQ/Submitter.src/M000119.html +92 -0
  227. data/doc/classes/RQ/Toucher.html +384 -0
  228. data/doc/classes/RQ/Updater.html +304 -0
  229. data/doc/classes/RQ/Updater.src/M000202.html +97 -0
  230. data/doc/classes/RQ/Usage.html +346 -0
  231. data/doc/classes/RQ/Usage.src/M000038.html +29 -0
  232. data/doc/classes/RQ/Usage.src/M000039.html +72 -0
  233. data/doc/classes/RQ/Util.html +1043 -0
  234. data/doc/classes/RQ/Util.src/M000040.html +27 -0
  235. data/doc/classes/RQ/Util.src/M000041.html +26 -0
  236. data/doc/classes/RQ/Util.src/M000042.html +25 -0
  237. data/doc/classes/RQ/Util.src/M000043.html +25 -0
  238. data/doc/classes/RQ/Util.src/M000044.html +30 -0
  239. data/doc/classes/RQ/Util.src/M000045.html +25 -0
  240. data/doc/classes/RQ/Util.src/M000046.html +34 -0
  241. data/doc/classes/RQ/Util.src/M000047.html +31 -0
  242. data/doc/classes/RQ/Util.src/M000048.html +41 -0
  243. data/doc/classes/RQ/Util.src/M000049.html +27 -0
  244. data/doc/classes/RQ/Util.src/M000050.html +34 -0
  245. data/doc/classes/RQ/Util.src/M000051.html +28 -0
  246. data/doc/classes/RQ/Util.src/M000052.html +27 -0
  247. data/doc/classes/RQ/Util.src/M000053.html +31 -0
  248. data/doc/classes/RQ/Util.src/M000054.html +31 -0
  249. data/doc/classes/RQ/Util.src/M000055.html +31 -0
  250. data/doc/classes/RQ/Util.src/M000056.html +25 -0
  251. data/doc/classes/RQ/Util.src/M000057.html +25 -0
  252. data/doc/classes/RQ/Util.src/M000058.html +25 -0
  253. data/doc/classes/RQ/Util.src/M000059.html +25 -0
  254. data/doc/classes/RQ/Util.src/M000060.html +25 -0
  255. data/doc/classes/RQ/Util.src/M000061.html +27 -0
  256. data/doc/classes/RQ/Util.src/M000062.html +28 -0
  257. data/doc/classes/RQ/Util.src/M000063.html +39 -0
  258. data/doc/classes/RQ/Util.src/M000064.html +39 -0
  259. data/doc/classes/RQ/Util.src/M000065.html +31 -0
  260. data/doc/classes/RQ/Util.src/M000066.html +29 -0
  261. data/doc/classes/SQLite.html +120 -0
  262. data/doc/classes/SQLite/Database.html +546 -0
  263. data/doc/classes/SQLite/TypeTranslator.html +221 -0
  264. data/doc/created.rid +1 -0
  265. data/doc/dot/f_0.dot +14 -0
  266. data/doc/dot/f_0.jpg +0 -0
  267. data/doc/dot/f_1.dot +14 -0
  268. data/doc/dot/f_1.jpg +0 -0
  269. data/doc/dot/f_10.dot +802 -0
  270. data/doc/dot/f_10.jpg +0 -0
  271. data/doc/dot/f_11.dot +14 -0
  272. data/doc/dot/f_11.jpg +0 -0
  273. data/doc/dot/f_12.dot +802 -0
  274. data/doc/dot/f_12.jpg +0 -0
  275. data/doc/dot/f_13.dot +802 -0
  276. data/doc/dot/f_13.jpg +0 -0
  277. data/doc/dot/f_14.dot +802 -0
  278. data/doc/dot/f_14.jpg +0 -0
  279. data/doc/dot/f_15.dot +802 -0
  280. data/doc/dot/f_15.jpg +0 -0
  281. data/doc/dot/f_16.dot +802 -0
  282. data/doc/dot/f_16.jpg +0 -0
  283. data/doc/dot/f_17.dot +802 -0
  284. data/doc/dot/f_17.jpg +0 -0
  285. data/doc/dot/f_18.dot +14 -0
  286. data/doc/dot/f_18.jpg +0 -0
  287. data/doc/dot/f_19.dot +802 -0
  288. data/doc/dot/f_19.jpg +0 -0
  289. data/doc/dot/f_2.dot +14 -0
  290. data/doc/dot/f_2.jpg +0 -0
  291. data/doc/dot/f_20.dot +802 -0
  292. data/doc/dot/f_20.jpg +0 -0
  293. data/doc/dot/f_21.dot +802 -0
  294. data/doc/dot/f_21.jpg +0 -0
  295. data/doc/dot/f_22.dot +802 -0
  296. data/doc/dot/f_22.jpg +0 -0
  297. data/doc/dot/f_23.dot +802 -0
  298. data/doc/dot/f_23.jpg +0 -0
  299. data/doc/dot/f_24.dot +802 -0
  300. data/doc/dot/f_24.jpg +0 -0
  301. data/doc/dot/f_25.dot +817 -0
  302. data/doc/dot/f_25.jpg +0 -0
  303. data/doc/dot/f_26.dot +29 -0
  304. data/doc/dot/f_26.jpg +0 -0
  305. data/doc/dot/f_27.dot +802 -0
  306. data/doc/dot/f_27.jpg +0 -0
  307. data/doc/dot/f_28.dot +802 -0
  308. data/doc/dot/f_28.jpg +0 -0
  309. data/doc/dot/f_29.dot +802 -0
  310. data/doc/dot/f_29.jpg +0 -0
  311. data/doc/dot/f_3.dot +14 -0
  312. data/doc/dot/f_3.jpg +0 -0
  313. data/doc/dot/f_30.dot +802 -0
  314. data/doc/dot/f_30.jpg +0 -0
  315. data/doc/dot/f_31.dot +802 -0
  316. data/doc/dot/f_31.jpg +0 -0
  317. data/doc/dot/f_32.dot +802 -0
  318. data/doc/dot/f_32.jpg +0 -0
  319. data/doc/dot/f_33.dot +802 -0
  320. data/doc/dot/f_33.jpg +0 -0
  321. data/doc/dot/f_34.dot +802 -0
  322. data/doc/dot/f_34.jpg +0 -0
  323. data/doc/dot/f_35.dot +802 -0
  324. data/doc/dot/f_35.jpg +0 -0
  325. data/doc/dot/f_36.dot +802 -0
  326. data/doc/dot/f_36.jpg +0 -0
  327. data/doc/dot/f_37.dot +802 -0
  328. data/doc/dot/f_37.jpg +0 -0
  329. data/doc/dot/f_38.dot +54 -0
  330. data/doc/dot/f_38.jpg +0 -0
  331. data/doc/dot/f_39.dot +802 -0
  332. data/doc/dot/f_39.jpg +0 -0
  333. data/doc/dot/f_4.dot +802 -0
  334. data/doc/dot/f_4.jpg +0 -0
  335. data/doc/dot/f_40.dot +802 -0
  336. data/doc/dot/f_40.jpg +0 -0
  337. data/doc/dot/f_41.dot +802 -0
  338. data/doc/dot/f_41.jpg +0 -0
  339. data/doc/dot/f_42.dot +802 -0
  340. data/doc/dot/f_42.jpg +0 -0
  341. data/doc/dot/f_43.dot +802 -0
  342. data/doc/dot/f_43.jpg +0 -0
  343. data/doc/dot/f_44.dot +802 -0
  344. data/doc/dot/f_44.jpg +0 -0
  345. data/doc/dot/f_5.dot +802 -0
  346. data/doc/dot/f_5.jpg +0 -0
  347. data/doc/dot/f_6.dot +802 -0
  348. data/doc/dot/f_6.jpg +0 -0
  349. data/doc/dot/f_7.dot +802 -0
  350. data/doc/dot/f_7.jpg +0 -0
  351. data/doc/dot/f_8.dot +802 -0
  352. data/doc/dot/f_8.jpg +0 -0
  353. data/doc/dot/f_9.dot +802 -0
  354. data/doc/dot/f_9.jpg +0 -0
  355. data/doc/dot/m_10_0.dot +802 -0
  356. data/doc/dot/m_10_0.jpg +0 -0
  357. data/doc/dot/m_11_0.dot +734 -0
  358. data/doc/dot/m_11_0.jpg +0 -0
  359. data/doc/dot/m_12_0.dot +802 -0
  360. data/doc/dot/m_12_0.jpg +0 -0
  361. data/doc/dot/m_13_0.dot +802 -0
  362. data/doc/dot/m_13_0.jpg +0 -0
  363. data/doc/dot/m_14_0.dot +802 -0
  364. data/doc/dot/m_14_0.jpg +0 -0
  365. data/doc/dot/m_15_0.dot +802 -0
  366. data/doc/dot/m_15_0.jpg +0 -0
  367. data/doc/dot/m_16_0.dot +802 -0
  368. data/doc/dot/m_16_0.jpg +0 -0
  369. data/doc/dot/m_17_0.dot +802 -0
  370. data/doc/dot/m_17_0.jpg +0 -0
  371. data/doc/dot/m_18_0.dot +734 -0
  372. data/doc/dot/m_18_0.jpg +0 -0
  373. data/doc/dot/m_19_0.dot +802 -0
  374. data/doc/dot/m_19_0.jpg +0 -0
  375. data/doc/dot/m_20_0.dot +802 -0
  376. data/doc/dot/m_20_0.jpg +0 -0
  377. data/doc/dot/m_21_0.dot +802 -0
  378. data/doc/dot/m_21_0.jpg +0 -0
  379. data/doc/dot/m_22_0.dot +802 -0
  380. data/doc/dot/m_22_0.jpg +0 -0
  381. data/doc/dot/m_23_0.dot +802 -0
  382. data/doc/dot/m_23_0.jpg +0 -0
  383. data/doc/dot/m_24_0.dot +802 -0
  384. data/doc/dot/m_24_0.jpg +0 -0
  385. data/doc/dot/m_25_0.dot +802 -0
  386. data/doc/dot/m_25_0.jpg +0 -0
  387. data/doc/dot/m_26_0.dot +734 -0
  388. data/doc/dot/m_26_0.jpg +0 -0
  389. data/doc/dot/m_27_0.dot +802 -0
  390. data/doc/dot/m_27_0.jpg +0 -0
  391. data/doc/dot/m_28_0.dot +802 -0
  392. data/doc/dot/m_28_0.jpg +0 -0
  393. data/doc/dot/m_29_0.dot +802 -0
  394. data/doc/dot/m_29_0.jpg +0 -0
  395. data/doc/dot/m_30_0.dot +802 -0
  396. data/doc/dot/m_30_0.jpg +0 -0
  397. data/doc/dot/m_31_0.dot +802 -0
  398. data/doc/dot/m_31_0.jpg +0 -0
  399. data/doc/dot/m_32_0.dot +802 -0
  400. data/doc/dot/m_32_0.jpg +0 -0
  401. data/doc/dot/m_33_0.dot +802 -0
  402. data/doc/dot/m_33_0.jpg +0 -0
  403. data/doc/dot/m_34_0.dot +802 -0
  404. data/doc/dot/m_34_0.jpg +0 -0
  405. data/doc/dot/m_35_0.dot +802 -0
  406. data/doc/dot/m_35_0.jpg +0 -0
  407. data/doc/dot/m_36_0.dot +802 -0
  408. data/doc/dot/m_36_0.jpg +0 -0
  409. data/doc/dot/m_37_0.dot +802 -0
  410. data/doc/dot/m_37_0.jpg +0 -0
  411. data/doc/dot/m_38_0.dot +54 -0
  412. data/doc/dot/m_38_0.jpg +0 -0
  413. data/doc/dot/m_39_0.dot +802 -0
  414. data/doc/dot/m_39_0.jpg +0 -0
  415. data/doc/dot/m_40_0.dot +802 -0
  416. data/doc/dot/m_40_0.jpg +0 -0
  417. data/doc/dot/m_41_0.dot +802 -0
  418. data/doc/dot/m_41_0.jpg +0 -0
  419. data/doc/dot/m_42_0.dot +802 -0
  420. data/doc/dot/m_42_0.jpg +0 -0
  421. data/doc/dot/m_43_0.dot +802 -0
  422. data/doc/dot/m_43_0.jpg +0 -0
  423. data/doc/dot/m_44_0.dot +802 -0
  424. data/doc/dot/m_44_0.jpg +0 -0
  425. data/doc/dot/m_4_0.dot +802 -0
  426. data/doc/dot/m_4_0.jpg +0 -0
  427. data/doc/dot/m_5_0.dot +802 -0
  428. data/doc/dot/m_5_0.jpg +0 -0
  429. data/doc/dot/m_6_0.dot +802 -0
  430. data/doc/dot/m_6_0.jpg +0 -0
  431. data/doc/dot/m_7_0.dot +802 -0
  432. data/doc/dot/m_7_0.jpg +0 -0
  433. data/doc/dot/m_8_0.dot +802 -0
  434. data/doc/dot/m_8_0.jpg +0 -0
  435. data/doc/dot/m_9_0.dot +802 -0
  436. data/doc/dot/m_9_0.jpg +0 -0
  437. data/doc/files/DEPENDS.html +107 -0
  438. data/doc/files/HISTORY.html +316 -0
  439. data/doc/files/INSTALL.html +126 -0
  440. data/doc/files/README.html +1223 -0
  441. data/doc/files/TODO.html +148 -0
  442. data/doc/files/TUTORIAL.html +392 -0
  443. data/doc/files/VERSION.html +107 -0
  444. data/doc/files/bin/rq_rb.html +231 -0
  445. data/doc/files/install_rb.html +188 -0
  446. data/doc/files/install_rb.src/M000001.html +53 -0
  447. data/doc/files/install_rb.src/M000002.html +43 -0
  448. data/doc/files/lib/rq-1_0_0/backer_rb.html +174 -0
  449. data/doc/files/lib/rq-1_0_0/configfile_rb.html +174 -0
  450. data/doc/files/lib/rq-1_0_0/configurator_rb.html +174 -0
  451. data/doc/files/lib/rq-1_0_0/creator_rb.html +174 -0
  452. data/doc/files/lib/rq-1_0_0/defaultconfig_txt.html +110 -0
  453. data/doc/files/lib/rq-1_0_0/deleter_rb.html +174 -0
  454. data/doc/files/lib/rq-1_0_0/executor_rb.html +174 -0
  455. data/doc/files/lib/rq-1_0_0/feeder_rb.html +178 -0
  456. data/doc/files/lib/rq-1_0_0/job_rb.html +176 -0
  457. data/doc/files/lib/rq-1_0_0/jobqueue_rb.html +177 -0
  458. data/doc/files/lib/rq-1_0_0/jobrunner_rb.html +175 -0
  459. data/doc/files/lib/rq-1_0_0/jobrunnerdaemon_rb.html +179 -0
  460. data/doc/files/lib/rq-1_0_0/lister_rb.html +174 -0
  461. data/doc/files/lib/rq-1_0_0/locker_rb.html +175 -0
  462. data/doc/files/lib/rq-1_0_0/logging_rb.html +178 -0
  463. data/doc/files/lib/rq-1_0_0/mainhelper_rb.html +175 -0
  464. data/doc/files/lib/rq-1_0_0/qdb_rb.html +177 -0
  465. data/doc/files/lib/rq-1_0_0/querier_rb.html +174 -0
  466. data/doc/files/lib/rq-1_0_0/refresher_rb.html +167 -0
  467. data/doc/files/lib/rq-1_0_0/relayer_rb.html +178 -0
  468. data/doc/files/lib/rq-1_0_0/sleepcycle_rb.html +167 -0
  469. data/doc/files/lib/rq-1_0_0/snapshotter_rb.html +174 -0
  470. data/doc/files/lib/rq-1_0_0/statuslister_rb.html +174 -0
  471. data/doc/files/lib/rq-1_0_0/submitter_rb.html +174 -0
  472. data/doc/files/lib/rq-1_0_0/updater_rb.html +174 -0
  473. data/doc/files/lib/rq-1_0_0/usage_rb.html +174 -0
  474. data/doc/files/lib/rq-1_0_0/util_rb.html +176 -0
  475. data/doc/files/lib/rq-2_0_0/backer_rb.html +180 -0
  476. data/doc/files/lib/rq-2_0_0/configfile_rb.html +180 -0
  477. data/doc/files/lib/rq-2_0_0/configurator_rb.html +180 -0
  478. data/doc/files/lib/rq-2_0_0/creator_rb.html +180 -0
  479. data/doc/files/lib/rq-2_0_0/defaultconfig_txt.html +110 -0
  480. data/doc/files/lib/rq-2_0_0/deleter_rb.html +180 -0
  481. data/doc/files/lib/rq-2_0_0/executor_rb.html +180 -0
  482. data/doc/files/lib/rq-2_0_0/feeder_rb.html +184 -0
  483. data/doc/files/lib/rq-2_0_0/job_rb.html +182 -0
  484. data/doc/files/lib/rq-2_0_0/jobqueue_rb.html +185 -0
  485. data/doc/files/lib/rq-2_0_0/jobrunner_rb.html +181 -0
  486. data/doc/files/lib/rq-2_0_0/jobrunnerdaemon_rb.html +185 -0
  487. data/doc/files/lib/rq-2_0_0/lister_rb.html +180 -0
  488. data/doc/files/lib/rq-2_0_0/locker_rb.html +181 -0
  489. data/doc/files/lib/rq-2_0_0/logging_rb.html +184 -0
  490. data/doc/files/lib/rq-2_0_0/mainhelper_rb.html +181 -0
  491. data/doc/files/lib/rq-2_0_0/orderedautohash_rb.html +182 -0
  492. data/doc/files/lib/rq-2_0_0/orderedhash_rb.html +138 -0
  493. data/doc/files/lib/rq-2_0_0/qdb_rb.html +184 -0
  494. data/doc/files/lib/rq-2_0_0/querier_rb.html +180 -0
  495. data/doc/files/lib/rq-2_0_0/refresher_rb.html +173 -0
  496. data/doc/files/lib/rq-2_0_0/relayer_rb.html +184 -0
  497. data/doc/files/lib/rq-2_0_0/rotater_rb.html +180 -0
  498. data/doc/files/lib/rq-2_0_0/sleepcycle_rb.html +173 -0
  499. data/doc/files/lib/rq-2_0_0/snapshotter_rb.html +180 -0
  500. data/doc/files/lib/rq-2_0_0/statuslister_rb.html +180 -0
  501. data/doc/files/lib/rq-2_0_0/submitter_rb.html +181 -0
  502. data/doc/files/lib/rq-2_0_0/updater_rb.html +180 -0
  503. data/doc/files/lib/rq-2_0_0/usage_rb.html +180 -0
  504. data/doc/files/lib/rq-2_0_0/util_rb.html +182 -0
  505. data/doc/files/lib/rq-2_3_1/backer_rb.html +182 -0
  506. data/doc/files/lib/rq-2_3_1/configfile_rb.html +182 -0
  507. data/doc/files/lib/rq-2_3_1/configurator_rb.html +182 -0
  508. data/doc/files/lib/rq-2_3_1/creator_rb.html +182 -0
  509. data/doc/files/lib/rq-2_3_1/defaultconfig_txt.html +110 -0
  510. data/doc/files/lib/rq-2_3_1/deleter_rb.html +182 -0
  511. data/doc/files/lib/rq-2_3_1/executor_rb.html +182 -0
  512. data/doc/files/lib/rq-2_3_1/feeder_rb.html +187 -0
  513. data/doc/files/lib/rq-2_3_1/job_rb.html +185 -0
  514. data/doc/files/lib/rq-2_3_1/jobqueue_rb.html +187 -0
  515. data/doc/files/lib/rq-2_3_1/jobrunner_rb.html +184 -0
  516. data/doc/files/lib/rq-2_3_1/jobrunnerdaemon_rb.html +187 -0
  517. data/doc/files/lib/rq-2_3_1/lister_rb.html +182 -0
  518. data/doc/files/lib/rq-2_3_1/locker_rb.html +183 -0
  519. data/doc/files/lib/rq-2_3_1/logging_rb.html +186 -0
  520. data/doc/files/lib/rq-2_3_1/mainhelper_rb.html +183 -0
  521. data/doc/files/lib/rq-2_3_1/orderedautohash_rb.html +184 -0
  522. data/doc/files/lib/rq-2_3_1/orderedhash_rb.html +138 -0
  523. data/doc/files/lib/rq-2_3_1/qdb_rb.html +188 -0
  524. data/doc/files/lib/rq-2_3_1/querier_rb.html +182 -0
  525. data/doc/files/lib/rq-2_3_1/refresher_rb.html +175 -0
  526. data/doc/files/lib/rq-2_3_1/relayer_rb.html +186 -0
  527. data/doc/files/lib/rq-2_3_1/resubmitter_rb.html +183 -0
  528. data/doc/files/lib/rq-2_3_1/rotater_rb.html +182 -0
  529. data/doc/files/lib/rq-2_3_1/sleepcycle_rb.html +175 -0
  530. data/doc/files/lib/rq-2_3_1/snapshotter_rb.html +182 -0
  531. data/doc/files/lib/rq-2_3_1/statuslister_rb.html +182 -0
  532. data/doc/files/lib/rq-2_3_1/submitter_rb.html +183 -0
  533. data/doc/files/lib/rq-2_3_1/updater_rb.html +182 -0
  534. data/doc/files/lib/rq-2_3_1/usage_rb.html +182 -0
  535. data/doc/files/lib/rq-2_3_1/util_rb.html +184 -0
  536. data/doc/files/lib/rq-2_3_1_rb.html +153 -0
  537. data/doc/files/lib/rq-2_3_2/backer_rb.html +186 -0
  538. data/doc/files/lib/rq-2_3_2/configfile_rb.html +186 -0
  539. data/doc/files/lib/rq-2_3_2/configurator_rb.html +186 -0
  540. data/doc/files/lib/rq-2_3_2/creator_rb.html +186 -0
  541. data/doc/files/lib/rq-2_3_2/defaultconfig_txt.html +110 -0
  542. data/doc/files/lib/rq-2_3_2/deleter_rb.html +186 -0
  543. data/doc/files/lib/rq-2_3_2/executor_rb.html +186 -0
  544. data/doc/files/lib/rq-2_3_2/feeder_rb.html +191 -0
  545. data/doc/files/lib/rq-2_3_2/ioviewer_rb.html +186 -0
  546. data/doc/files/lib/rq-2_3_2/job_rb.html +189 -0
  547. data/doc/files/lib/rq-2_3_2/jobqueue_rb.html +192 -0
  548. data/doc/files/lib/rq-2_3_2/jobrunner_rb.html +188 -0
  549. data/doc/files/lib/rq-2_3_2/jobrunnerdaemon_rb.html +191 -0
  550. data/doc/files/lib/rq-2_3_2/lister_rb.html +186 -0
  551. data/doc/files/lib/rq-2_3_2/locker_rb.html +187 -0
  552. data/doc/files/lib/rq-2_3_2/logging_rb.html +190 -0
  553. data/doc/files/lib/rq-2_3_2/mainhelper_rb.html +188 -0
  554. data/doc/files/lib/rq-2_3_2/orderedautohash_rb.html +188 -0
  555. data/doc/files/lib/rq-2_3_2/orderedhash_rb.html +138 -0
  556. data/doc/files/lib/rq-2_3_2/qdb_rb.html +193 -0
  557. data/doc/files/lib/rq-2_3_2/querier_rb.html +186 -0
  558. data/doc/files/lib/rq-2_3_2/recoverer_rb.html +186 -0
  559. data/doc/files/lib/rq-2_3_2/refresher_rb.html +179 -0
  560. data/doc/files/lib/rq-2_3_2/relayer_rb.html +190 -0
  561. data/doc/files/lib/rq-2_3_2/resubmitter_rb.html +187 -0
  562. data/doc/files/lib/rq-2_3_2/rotater_rb.html +186 -0
  563. data/doc/files/lib/rq-2_3_2/sleepcycle_rb.html +179 -0
  564. data/doc/files/lib/rq-2_3_2/snapshotter_rb.html +186 -0
  565. data/doc/files/lib/rq-2_3_2/statuslister_rb.html +186 -0
  566. data/doc/files/lib/rq-2_3_2/submitter_rb.html +187 -0
  567. data/doc/files/lib/rq-2_3_2/updater_rb.html +186 -0
  568. data/doc/files/lib/rq-2_3_2/usage_rb.html +186 -0
  569. data/doc/files/lib/rq-2_3_2/util_rb.html +188 -0
  570. data/doc/files/lib/rq-2_3_3/backer_rb.html +186 -0
  571. data/doc/files/lib/rq-2_3_3/configfile_rb.html +186 -0
  572. data/doc/files/lib/rq-2_3_3/configurator_rb.html +186 -0
  573. data/doc/files/lib/rq-2_3_3/creator_rb.html +186 -0
  574. data/doc/files/lib/rq-2_3_3/defaultconfig_txt.html +110 -0
  575. data/doc/files/lib/rq-2_3_3/deleter_rb.html +186 -0
  576. data/doc/files/lib/rq-2_3_3/executor_rb.html +186 -0
  577. data/doc/files/lib/rq-2_3_3/feeder_rb.html +191 -0
  578. data/doc/files/lib/rq-2_3_3/ioviewer_rb.html +186 -0
  579. data/doc/files/lib/rq-2_3_3/job_rb.html +189 -0
  580. data/doc/files/lib/rq-2_3_3/jobqueue_rb.html +192 -0
  581. data/doc/files/lib/rq-2_3_3/jobrunner_rb.html +188 -0
  582. data/doc/files/lib/rq-2_3_3/jobrunnerdaemon_rb.html +191 -0
  583. data/doc/files/lib/rq-2_3_3/lister_rb.html +186 -0
  584. data/doc/files/lib/rq-2_3_3/locker_rb.html +187 -0
  585. data/doc/files/lib/rq-2_3_3/logging_rb.html +190 -0
  586. data/doc/files/lib/rq-2_3_3/mainhelper_rb.html +188 -0
  587. data/doc/files/lib/rq-2_3_3/orderedautohash_rb.html +188 -0
  588. data/doc/files/lib/rq-2_3_3/orderedhash_rb.html +138 -0
  589. data/doc/files/lib/rq-2_3_3/qdb_rb.html +193 -0
  590. data/doc/files/lib/rq-2_3_3/querier_rb.html +186 -0
  591. data/doc/files/lib/rq-2_3_3/recoverer_rb.html +186 -0
  592. data/doc/files/lib/rq-2_3_3/refresher_rb.html +179 -0
  593. data/doc/files/lib/rq-2_3_3/relayer_rb.html +190 -0
  594. data/doc/files/lib/rq-2_3_3/resubmitter_rb.html +187 -0
  595. data/doc/files/lib/rq-2_3_3/rotater_rb.html +187 -0
  596. data/doc/files/lib/rq-2_3_3/sleepcycle_rb.html +179 -0
  597. data/doc/files/lib/rq-2_3_3/snapshotter_rb.html +186 -0
  598. data/doc/files/lib/rq-2_3_3/statuslister_rb.html +186 -0
  599. data/doc/files/lib/rq-2_3_3/submitter_rb.html +187 -0
  600. data/doc/files/lib/rq-2_3_3/updater_rb.html +186 -0
  601. data/doc/files/lib/rq-2_3_3/usage_rb.html +186 -0
  602. data/doc/files/lib/rq-2_3_3/util_rb.html +188 -0
  603. data/doc/files/lib/rq-3_0_0/backer_rb.html +194 -0
  604. data/doc/files/lib/rq-3_0_0/configfile_rb.html +194 -0
  605. data/doc/files/lib/rq-3_0_0/configurator_rb.html +194 -0
  606. data/doc/files/lib/rq-3_0_0/creator_rb.html +194 -0
  607. data/doc/files/lib/rq-3_0_0/cron_rb.html +194 -0
  608. data/doc/files/lib/rq-3_0_0/defaultconfig_txt.html +110 -0
  609. data/doc/files/lib/rq-3_0_0/deleter_rb.html +194 -0
  610. data/doc/files/lib/rq-3_0_0/executor_rb.html +194 -0
  611. data/doc/files/lib/rq-3_0_0/feeder_rb.html +199 -0
  612. data/doc/files/lib/rq-3_0_0/ioviewer_rb.html +194 -0
  613. data/doc/files/lib/rq-3_0_0/job_rb.html +197 -0
  614. data/doc/files/lib/rq-3_0_0/jobqueue_rb.html +200 -0
  615. data/doc/files/lib/rq-3_0_0/jobrunner_rb.html +196 -0
  616. data/doc/files/lib/rq-3_0_0/jobrunnerdaemon_rb.html +199 -0
  617. data/doc/files/lib/rq-3_0_0/lister_rb.html +194 -0
  618. data/doc/files/lib/rq-3_0_0/locker_rb.html +195 -0
  619. data/doc/files/lib/rq-3_0_0/logging_rb.html +198 -0
  620. data/doc/files/lib/rq-3_0_0/mainhelper_rb.html +196 -0
  621. data/doc/files/lib/rq-3_0_0/orderedautohash_rb.html +196 -0
  622. data/doc/files/lib/rq-3_0_0/orderedhash_rb.html +138 -0
  623. data/doc/files/lib/rq-3_0_0/qdb_rb.html +201 -0
  624. data/doc/files/lib/rq-3_0_0/querier_rb.html +194 -0
  625. data/doc/files/lib/rq-3_0_0/recoverer_rb.html +194 -0
  626. data/doc/files/lib/rq-3_0_0/refresher_rb.html +187 -0
  627. data/doc/files/lib/rq-3_0_0/relayer_rb.html +198 -0
  628. data/doc/files/lib/rq-3_0_0/resource_rb.html +194 -0
  629. data/doc/files/lib/rq-3_0_0/resourcemanager_rb.html +187 -0
  630. data/doc/files/lib/rq-3_0_0/resubmitter_rb.html +195 -0
  631. data/doc/files/lib/rq-3_0_0/rotater_rb.html +195 -0
  632. data/doc/files/lib/rq-3_0_0/sleepcycle_rb.html +187 -0
  633. data/doc/files/lib/rq-3_0_0/snapshotter_rb.html +194 -0
  634. data/doc/files/lib/rq-3_0_0/sqlite_rb.html +160 -0
  635. data/doc/files/lib/rq-3_0_0/statuslister_rb.html +194 -0
  636. data/doc/files/lib/rq-3_0_0/submitter_rb.html +195 -0
  637. data/doc/files/lib/rq-3_0_0/toucher_rb.html +195 -0
  638. data/doc/files/lib/rq-3_0_0/updater_rb.html +194 -0
  639. data/doc/files/lib/rq-3_0_0/usage_rb.html +194 -0
  640. data/doc/files/lib/rq-3_0_0/util_rb.html +196 -0
  641. data/doc/files/lib/rq_rb.html +244 -0
  642. data/doc/fr_class_index.html +73 -0
  643. data/doc/fr_file_index.html +71 -0
  644. data/doc/fr_method_index.html +323 -0
  645. data/doc/index.html +24 -0
  646. data/doc/rdoc-style.css +172 -0
  647. data/extconf.rb +150 -0
  648. data/gemspec.rb +32 -0
  649. data/install.rb +75 -8
  650. data/lib/{rq-0.1.7.rb → rq-3.0.0.rb} +52 -10
  651. data/lib/{rq-0.1.7 → rq-3.0.0}/backer.rb +11 -7
  652. data/lib/{rq-0.1.7 → rq-3.0.0}/configfile.rb +21 -17
  653. data/lib/{rq-0.1.7 → rq-3.0.0}/configurator.rb +10 -6
  654. data/lib/rq-3.0.0/creator.rb +46 -0
  655. data/lib/rq-3.0.0/cron.rb +125 -0
  656. data/lib/{rq-0.1.7 → rq-3.0.0}/defaultconfig.txt +0 -0
  657. data/lib/rq-3.0.0/deleter.rb +51 -0
  658. data/lib/rq-3.0.0/executor.rb +40 -0
  659. data/lib/{rq-0.1.7 → rq-3.0.0}/feeder.rb +245 -91
  660. data/lib/rq-3.0.0/i686-linux/_sqlite.so +0 -0
  661. data/lib/rq-3.0.0/ioviewer.rb +48 -0
  662. data/lib/rq-3.0.0/job.rb +51 -0
  663. data/lib/rq-3.0.0/jobqueue.rb +899 -0
  664. data/lib/rq-3.0.0/jobrunner.rb +104 -0
  665. data/lib/{rq-0.1.7 → rq-3.0.0}/jobrunnerdaemon.rb +41 -27
  666. data/lib/rq-3.0.0/lister.rb +47 -0
  667. data/lib/rq-3.0.0/local/bin/sqlite +0 -0
  668. data/lib/rq-3.0.0/local/include/sqlite.h +868 -0
  669. data/lib/rq-3.0.0/local/lib/libsqlite.a +0 -0
  670. data/lib/rq-3.0.0/local/lib/libsqlite.la +35 -0
  671. data/lib/rq-3.0.0/local/lib/libsqlite.so +0 -0
  672. data/lib/rq-3.0.0/local/lib/libsqlite.so.0 +0 -0
  673. data/lib/rq-3.0.0/local/lib/libsqlite.so.0.8.6 +0 -0
  674. data/lib/rq-3.0.0/local/lib/pkgconfig/sqlite.pc +12 -0
  675. data/lib/{rq-0.1.7 → rq-3.0.0}/locker.rb +12 -6
  676. data/lib/{rq-0.1.7 → rq-3.0.0}/logging.rb +49 -42
  677. data/lib/rq-3.0.0/mainhelper.rb +184 -0
  678. data/lib/rq-3.0.0/orderedautohash.rb +39 -0
  679. data/lib/rq-3.0.0/orderedhash.rb +240 -0
  680. data/lib/{rq-0.1.7 → rq-3.0.0}/qdb.rb +183 -84
  681. data/lib/rq-3.0.0/querier.rb +98 -0
  682. data/lib/rq-3.0.0/recoverer.rb +28 -0
  683. data/lib/{rq-0.1.7 → rq-3.0.0}/refresher.rb +16 -8
  684. data/lib/rq-3.0.0/relayer.rb +283 -0
  685. data/lib/rq-3.0.0/resource.rb +22 -0
  686. data/lib/rq-3.0.0/resourcemanager.rb +40 -0
  687. data/lib/rq-3.0.0/resubmitter.rb +96 -0
  688. data/lib/rq-3.0.0/rotater.rb +98 -0
  689. data/lib/{rq-0.1.7 → rq-3.0.0}/sleepcycle.rb +14 -14
  690. data/lib/rq-3.0.0/snapshotter.rb +40 -0
  691. data/lib/rq-3.0.0/sqlite.rb +293 -0
  692. data/lib/rq-3.0.0/statuslister.rb +48 -0
  693. data/lib/rq-3.0.0/submitter.rb +109 -0
  694. data/lib/rq-3.0.0/toucher.rb +177 -0
  695. data/lib/rq-3.0.0/updater.rb +95 -0
  696. data/lib/rq-3.0.0/usage.rb +1157 -0
  697. data/lib/{rq-0.1.7 → rq-3.0.0}/util.rb +74 -56
  698. data/lib/rq.rb +52 -12
  699. data/rdoc.sh +17 -0
  700. data/rq +3 -1
  701. data/white_box/joblist +8 -0
  702. metadata +779 -96
  703. data/DEPENDS +0 -5
  704. data/HISTORY +0 -26
  705. data/VERSION +0 -1
  706. data/bin/rq-0.1.7 +0 -410
  707. data/lib/rq-0.1.7/creator.rb +0 -23
  708. data/lib/rq-0.1.7/deleter.rb +0 -39
  709. data/lib/rq-0.1.7/executor.rb +0 -41
  710. data/lib/rq-0.1.7/job.rb +0 -51
  711. data/lib/rq-0.1.7/jobqueue.rb +0 -432
  712. data/lib/rq-0.1.7/jobrunner.rb +0 -63
  713. data/lib/rq-0.1.7/lister.rb +0 -22
  714. data/lib/rq-0.1.7/mainhelper.rb +0 -53
  715. data/lib/rq-0.1.7/querier.rb +0 -33
  716. data/lib/rq-0.1.7/snapshotter.rb +0 -25
  717. data/lib/rq-0.1.7/statuslister.rb +0 -22
  718. data/lib/rq-0.1.7/submitter.rb +0 -90
  719. data/lib/rq-0.1.7/updater.rb +0 -95
  720. data/lib/rq-0.1.7/usage.rb +0 -609
  721. data/rdoc.cmd +0 -2
  722. data/rq.gemspec +0 -36
  723. 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 v0.1.7
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
- rq is an tool used to create instant linux clusters by managing nfs
10
- mounted priority work queues. multiple instances of rq running from
11
- multiples hosts can work from these queues to distribute processing load to n
12
- nodes - bringing many dozens of otherwise powerful cpus to their knees with a
13
- single blow. clearly this software should be kept out of the hands of free
14
- radicals, seti enthusiasts, and one mr. j. safran.
15
-
16
- the central concept of rq is that n nodes work in isolation to pull
17
- jobs from an central nfs mounted work priority work queue in a synchronized
18
- fashion. the nodes have absolutely no knowledge of each other and all
19
- communication if done via the queue meaning that, so long as the queue is
20
- available via nfs and a single node is running jobs from it, the system will
21
- continue to process jobs. there is no centralized process whatsoever - all
22
- nodes work to take jobs from the queue and run them as fast as possible. this
23
- creates a system which load balances automatically and is robust in face of
24
- node failures.
25
-
26
- the first argument to any rq command is the name of the queue. this
27
- name may be omitted if, and only if, the environment variable RQ_Q has been
28
- set to contain the absolute path of target queue.
29
-
30
- rq operates in one of the modes create, submit, list, status,
31
- delete, update, query, execute, configure, snapshot, lock, backup, help, or
32
- feed. depending on the mode of operation and the options used the meaning of
33
- 'mode_args' may change.
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
- the following mode abbreviations exist
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
- h => help
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
- create a queue. the queue must be located on an nfs mounted file system
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
- or simply
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 a feeding node. any 'mode_args'
72
- are taken as the command to run. note that 'mode_args' are subject to shell
73
- expansion - if you don't understand what this means do not use this feature
74
- and pass jobs on stdin.
75
-
76
- when running in submit mode a file may by specified as a list of commands to
77
- run using the '--infile, -i' option. this file is taken to be a newline
78
- separated list of commands to submit, blank lines and comments (#) are
79
- allowed. if submitting a large number of jobs the input file method is
80
- MUCH, more efficient. if no commands are specified on the command line rq
81
- automatically reads them from STDIN. yaml formatted files are also allowed
82
- as input (http://www.yaml.org/) - note that the output of nearly all rq
83
- commands is valid yaml and may, therefore, be piped as input into the submit
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 - zero is the
88
- default. note that submission of a high priority job will NOT supplant
89
- currently running low priority jobs, but higher priority jobs WILL always
90
- migrate above lower priority jobs in the queue in order that they be run as
91
- soon as possible. constant submission of high priority jobs may create a
92
- starvation situation whereby low priority jobs are never allowed to run.
93
- avoiding this situation is the responsibility of the user. the only
94
- guaruntee rq makes regarding job execution is that jobs are
95
- executed in an 'oldest highest priority' order and that running jobs are
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 42000 jobs (quietly) from a command file.
170
+ 2) submit a list of jobs from file. note the '-' used to specify
171
+ reading jobs from stdin
109
172
 
110
- ~ > wc -l cmdfile
111
- 42000
112
- ~ > rq q s -q < cmdfile
173
+ ~ > cat joblist
174
+ job1.sh
175
+ job2.sh
176
+ job2.sh
113
177
 
114
- 3) submit 42 priority 9 jobs from a command file.
178
+ ~ > rq q submit --infile=joblist
115
179
 
116
- ~ > wc -l cmdfile
117
- 42
118
- ~ > rq -p9 q s < cmdfile
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
- 4) submit 42 priority 9 jobs from a command file, marking them as
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
- 5) re-submit all the 'important' jobs (see 'query' section below)
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
- 6) re-submit all jobs which are already finished (see 'list' section
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 are numbers
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 finshed
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. there are no 'mode_args'.
178
- the meaning of each state is as follows:
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
- been restarted. this is because no node has any knowledge of other nodes
188
- and cannot possibly know if a job was started on a node that died, or is
189
- simply taking a very long time. only the node that dies, upon restart, can
190
- determine that is has jobs that 'were started before it started' and move
191
- these jobs into the dead state. normally only a machine crash would cause a
192
- job to be placed into the dead state. dead jobs are never automatically
193
- restarted, this is the responsibility of an operator.
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, running, finished, dead, or jobs specified
205
- by jid. the delete mode is capable of parsing the output of list and query
206
- modes, making it possible to create custom filters to delete jobs meeting
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
- 'mode_args' are the same as for list. note that while it is possible to
210
- delete a running job, but there is no way to actually STOP it mid execution
211
- since the node doing the deleteing has no way to communicate this
212
- information to the (probably) remote execution node. therefore you should
213
- use the 'delete running' feature with care and only for housekeeping
214
- purposes or to prevent future jobs from being scheduled.
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, running, and finished jobs from a queue
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' fields
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
- to be 'barfoo'
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 STDIN). this feature can be
262
- used to make a fine grained slection of jobs for reporting or as input into
263
- the delete command. you must have a basic understanding of SQL syntax to
264
- use this feature, but it is fairly intuitive in this limited capacity.
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
- ~ > rq q query "started >= '2004-06-29 22:51:00' and started < '2004-06-29 22:51:10'"
444
+ ~ > a='2004-06-29 22:51:00'
445
+
446
+ ~ > b='2004-06-29 22:51:10'
271
447
 
272
- 1) shell quoting can be tricky here so input on STDIN is also allowed to
273
- avoid shell expansion
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
- using the '--tag, -t' feature of the submit mode which allows a user to
300
- tag a job with a user defined string which can then be used to easily
301
- query that job group
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
- the user to execute arbitrary sql on the queue. unlike query mode a write
312
- lock on the queue is obtained allowing a user to definitively shoot
313
- themselves in the foot. for details on a queue's schema the file
314
- 'db.schema' in the queue directory should be examined.
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 figure
332
- out a complex pipeline command your test queries will not compete with the
333
- feeders for the queue's lock. you should use this option whenever possible
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
- basename of the q plus '.snapshot'
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 uses
370
- the queue's locking protocol to safely obtain a lock of the specified type
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
- this message
639
+ rotate, r :
401
640
 
402
- examples :
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) get this message
650
+ 0) rotate a queue using default rotation name
405
651
 
406
- ~> rq q help
407
- or
408
- ~> rq help
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 quickly
414
- as possible. jobs are taken from the queue in an 'oldest highest priority'
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 CPU
418
- power of many nodes simoultaneously in order to more effectively clobber
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 so
422
- that if the process loses it's controling terminal it will not exit when you
423
- exit your terminal session. use the '--daemon, -d' option to accomplish
424
- this. by default only one feeding process per host per queue is allowed to
425
- run at any given moment. because of this it is acceptable to start a feeder
426
- at some regular interval from a cron entry since, if a feeder is alreay
427
- running, the process will simply exit and otherwise a new feeder will be
428
- started. in this way you may keep feeder processing running even acroess
429
- machine reboots without requiring sysad intervention to add an entry to the
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 and
436
- maximum polling time of 2 and 4 respectively. you would NEVER specify
437
- polling times this brief except for debugging purposes!!!
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 -m2 -M4
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
- database
694
+ database
443
695
 
444
- ~ > RQ_SQL_DEBUG=1 rq q f -v4 -m2 -M4
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 f -d -l/home/ahoward/rq.log
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
- log rolling in daemon mode is automatic so your logs should never need
451
- to be deleted to prevent disk overflow.
717
+ ~ > rq q start
452
718
 
453
- 3) use something like this sample crontab entry to keep a feeder running
454
- forever - it attempts to (re)start every fifteen minutes but exits if
455
- another process is already feeding.
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
- # your crontab file - sample only
726
+ # crontab.sample
459
727
  #
460
728
 
461
- */15 * * * * /full/path/to/bin/rq /full/path/to/nfs/mounted/q f -d -l/home/username/cfq.log -q
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
- the '--quiet, -q' here tells rq to exit quietly (no STDERR)
464
- when another process is found to already be feeding so that no cron
465
- message would be sent under these conditions.
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 multiple
481
- instances of your program all potentially running at the same time will be.
482
- for instance, it is beyond the scope of rq to ensure multiple
483
- instances of a given program will not overwrite each others output files.
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
- know when the user has collected the exit_status of a given job, and so
489
- keeps this information in the queue forever until instructed to delete it.
490
- if you have collected the exit_status of you job(s) it is not an error to
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 normal
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@noaa.gov
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@noaa.gov
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) .. highest(n) -
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 silently if
528
- another process is already feeding
529
- --daemon, -d
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, -f
1082
+ --max_feed=max_feed
532
1083
  modes <feed> : the maximum number of concurrent jobs run
533
- --retries=retries, -r
1084
+ --retries=retries
534
1085
  modes <feed> : specify transaction retries
535
- --min_sleep=min_sleep, -m
1086
+ --min_sleep=min_sleep
536
1087
  modes <feed> : specify min sleep
537
- --max_sleep=max_sleep, -M
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