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
@@ -0,0 +1,346 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: RQ::Refresher</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <h1>RQ::Refresher <sup class="type-note">(Class)</sup></h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>In:</strong></td>
54
+ <td>
55
+ <a href="../../files/lib/rq-3_0_0/refresher_rb.html">
56
+ lib/rq-3.0.0/refresher.rb
57
+ </a>
58
+ <br />
59
+ </td>
60
+ </tr>
61
+
62
+ <tr class="top-aligned-row">
63
+ <td><strong>Parent:</strong></td>
64
+ <td>
65
+ Object
66
+ </td>
67
+ </tr>
68
+ </table>
69
+ </div>
70
+ <!-- banner header -->
71
+
72
+ <div id="bodyContent">
73
+
74
+
75
+ <div id="contextContent">
76
+ <div id="diagram">
77
+ <map name="map">
78
+ <area shape="RECT" coords="1093,335,1176,287" href="MainHelper.html" alt="MainHelper">
79
+ <area shape="RECT" coords="67,453,152,405" href="StatusLister.html" alt="StatusLister">
80
+ <area shape="RECT" coords="215,453,303,405" href="Snapshotter.html" alt="Snapshotter">
81
+ <area shape="RECT" coords="363,453,451,405" href="ReSubmitter.html" alt="ReSubmitter">
82
+ <area shape="RECT" coords="504,453,576,405" href="Feeder.html" alt="Feeder">
83
+ <area shape="RECT" coords="632,453,704,405" href="Deleter.html" alt="Deleter">
84
+ <area shape="RECT" coords="763,453,835,405" href="Toucher.html" alt="Toucher">
85
+ <area shape="RECT" coords="891,453,963,405" href="Relayer.html" alt="Relayer">
86
+ <area shape="RECT" coords="1027,453,1099,405" href="Executor.html" alt="Executor">
87
+ <area shape="RECT" coords="1131,453,1205,405" href="Submitter.html" alt="Submitter">
88
+ <area shape="RECT" coords="1269,453,1341,405" href="Locker.html" alt="Locker">
89
+ <area shape="RECT" coords="1393,453,1468,405" href="IOViewer.html" alt="IOViewer">
90
+ <area shape="RECT" coords="1528,453,1600,405" href="Backer.html" alt="Backer">
91
+ <area shape="RECT" coords="1656,453,1728,405" href="Cron.html" alt="Cron">
92
+ <area shape="RECT" coords="1773,453,1861,405" href="Configurator.html" alt="Configurator">
93
+ <area shape="RECT" coords="1924,453,1996,405" href="Lister.html" alt="Lister">
94
+ <area shape="RECT" coords="2043,453,2115,405" href="Rotater.html" alt="Rotater">
95
+ <area shape="RECT" coords="2169,453,2241,405" href="Creator.html" alt="Creator">
96
+ <area shape="RECT" coords="2299,453,2379,405" href="Recoverer.html" alt="Recoverer">
97
+ <area shape="RECT" coords="2439,453,2511,405" href="Updater.html" alt="Updater">
98
+ <area shape="RECT" coords="2571,453,2643,405" href="Querier.html" alt="Querier">
99
+ <area shape="RECT" coords="1868,53,1940,5" href="../Hash.html" alt="::Hash">
100
+ <area shape="RECT" coords="1865,216,1943,168" href="ConfigFile.html" alt="ConfigFile">
101
+ <area shape="RECT" coords="1996,53,2089,5" href="../DRbUndumped.html" alt="DRbUndumped">
102
+ <area shape="RECT" coords="2001,216,2084,168" href="JobRunner.html" alt="JobRunner">
103
+ <area shape="RECT" coords="1463,335,1535,287" href="Main.html" alt="Main">
104
+ <area shape="RECT" coords="1213,335,1285,287" href="QDB.html" alt="QDB">
105
+ <area shape="RECT" coords="1323,335,1403,287" href="JobQueue.html" alt="JobQueue">
106
+ <area shape="RECT" coords="904,335,1027,287" href="JobRunnerDaemon.html" alt="JobRunnerDaemon">
107
+ <area shape="RECT" coords="2173,53,2245,5" href="../Array.html" alt="Array">
108
+ <area shape="RECT" coords="2159,216,2241,168" href="SleepCycle.html" alt="SleepCycle">
109
+ <area shape="RECT" coords="2273,216,2345,168" href="Job.html" alt="Job">
110
+ <area shape="RECT" coords="2272,53,2347,5" href="../ArrayFields.html" alt="ArrayFields">
111
+ <area shape="RECT" coords="2407,53,2505,5" href="../OrderedHash.html" alt="::OrderedHash">
112
+ <area shape="RECT" coords="2399,216,2513,168" href="OrderedAutoHash.html" alt="OrderedAutoHash">
113
+ <area shape="RECT" coords="925,53,1005,5" href="../LogMethods.html" alt="LogMethods">
114
+ <area shape="RECT" coords="2575,216,2652,168" href="Refresher.html" alt="Refresher">
115
+ <area shape="RECT" coords="1687,216,1804,168" href="ResourceManager.html" alt="ResourceManager">
116
+ <area shape="RECT" coords="1549,216,1624,168" href="Resource.html" alt="Resource">
117
+ <area shape="RECT" coords="2549,227,2677,135" href="../RQ.html" alt="lib/rq-3.0.0/refresher.rb">
118
+ <area shape="RECT" coords="173,464,313,372" href="../RQ.html" alt="lib/rq-3.0.0/snapshotter.rb">
119
+ <area shape="RECT" coords="597,464,715,372" href="../RQ.html" alt="lib/rq-3.0.0/deleter.rb">
120
+ <area shape="RECT" coords="472,464,587,372" href="../RQ.html" alt="lib/rq-3.0.0/feeder.rb">
121
+ <area shape="RECT" coords="1763,464,1903,372" href="../RQ.html" alt="lib/rq-3.0.0/configurator.rb">
122
+ <area shape="RECT" coords="1645,464,1752,372" href="../RQ.html" alt="lib/rq-3.0.0/cron.rb">
123
+ <area shape="RECT" coords="1312,345,1441,253" href="../RQ.html" alt="lib/rq-3.0.0/jobqueue.rb">
124
+ <area shape="RECT" coords="2032,464,2148,372" href="../RQ.html" alt="lib/rq-3.0.0/rotater.rb">
125
+ <area shape="RECT" coords="1517,464,1635,372" href="../RQ.html" alt="lib/rq-3.0.0/backer.rb">
126
+ <area shape="RECT" coords="725,464,845,372" href="../RQ.html" alt="lib/rq-3.0.0/toucher.rb">
127
+ <area shape="RECT" coords="1197,345,1301,253" href="../RQ.html" alt="lib/rq-3.0.0/qdb.rb">
128
+ <area shape="RECT" coords="1840,227,1967,135" href="../RQ.html" alt="lib/rq-3.0.0/configfile.rb">
129
+ <area shape="RECT" coords="1049,345,1187,253" href="../RQ.html" alt="lib/rq-3.0.0/mainhelper.rb">
130
+ <area shape="RECT" coords="1913,464,2021,372" href="../RQ.html" alt="lib/rq-3.0.0/lister.rb">
131
+ <area shape="RECT" coords="1452,345,1545,253" href="../RQ.html" alt="bin/rq.rb">
132
+ <area shape="RECT" coords="27,464,163,372" href="../RQ.html" alt="lib/rq-3.0.0/statuslister.rb">
133
+ <area shape="RECT" coords="2428,464,2549,372" href="../RQ.html" alt="lib/rq-3.0.0/updater.rb">
134
+ <area shape="RECT" coords="1977,227,2107,135" href="../RQ.html" alt="lib/rq-3.0.0/jobrunner.rb">
135
+ <area shape="RECT" coords="2263,227,2363,135" href="../RQ.html" alt="lib/rq-3.0.0/job.rb">
136
+ <area shape="RECT" coords="2159,464,2277,372" href="../RQ.html" alt="lib/rq-3.0.0/creator.rb">
137
+ <area shape="RECT" coords="2117,227,2252,135" href="../RQ.html" alt="lib/rq-3.0.0/sleepcycle.rb">
138
+ <area shape="RECT" coords="984,464,1109,372" href="../RQ.html" alt="lib/rq-3.0.0/executor.rb">
139
+ <area shape="RECT" coords="324,464,461,372" href="../RQ.html" alt="lib/rq-3.0.0/resubmitter.rb">
140
+ <area shape="RECT" coords="2373,227,2539,135" href="../RQ.html" alt="lib/rq-3.0.0/orderedautohash.rb">
141
+ <area shape="RECT" coords="1661,227,1829,135" href="../RQ.html" alt="lib/rq-3.0.0/resourcemanager.rb">
142
+ <area shape="RECT" coords="1524,227,1651,135" href="../RQ.html" alt="lib/rq-3.0.0/resource.rb">
143
+ <area shape="RECT" coords="869,345,1037,253" href="../RQ.html" alt="lib/rq-3.0.0/jobrunnerdaemon.rb">
144
+ <area shape="RECT" coords="2288,464,2417,372" href="../RQ.html" alt="lib/rq-3.0.0/recoverer.rb">
145
+ <area shape="RECT" coords="2560,464,2677,372" href="../RQ.html" alt="lib/rq-3.0.0/querier.rb">
146
+ <area shape="RECT" coords="1383,464,1507,372" href="../RQ.html" alt="lib/rq-3.0.0/ioviewer.rb">
147
+ <area shape="RECT" coords="1259,464,1372,372" href="../RQ.html" alt="lib/rq-3.0.0/locker.rb">
148
+ <area shape="RECT" coords="1120,464,1248,372" href="../RQ.html" alt="lib/rq-3.0.0/submitter.rb">
149
+ <area shape="RECT" coords="856,464,973,372" href="../RQ.html" alt="lib/rq-3.0.0/relayer.rb">
150
+ <area shape="RECT" coords="1420,204,1513,157" href="Usage.html" alt="Usage">
151
+ <area shape="RECT" coords="1316,204,1409,157" href="Util.html" alt="Util">
152
+ <area shape="RECT" coords="1188,204,1295,157" href="Logging/LogClassMethods.html" alt="LogClassMethods">
153
+ <area shape="RECT" coords="1084,204,1177,157" href="Logging/LoggerExt.html" alt="LoggerExt">
154
+ <area shape="RECT" coords="980,204,1073,157" href="Logging/LogMethods.html" alt="LogMethods">
155
+ <area shape="RECT" coords="953,215,1305,124" href="Logging.html" alt="Logging">
156
+ <area shape="RECT" coords="16,475,2688,91" href="../RQ.html" alt="RQ">
157
+ </map>
158
+ <img src="../../dot/m_44_0.jpg" usemap="#map" border=0 alt="Module: RQ">
159
+ </div>
160
+
161
+ <div id="description">
162
+ <p>
163
+ the job of the <a href="Refresher.html">Refresher</a> is to maintain a
164
+ <em>lease</em> on a file that has been locked. the method is simply to
165
+ touch the file at a certain interval thereby keeping it
166
+ &#8216;fresh&#8217;. a separate process, vs. a thread, is used for this
167
+ task to eliminate any chance that the ruby interpreter might put all
168
+ threads to sleep for some blocking tasks, like fcntl based locks which are
169
+ used heavily in <a href="../RQ.html">RQ</a>, resulting in a a prematurely
170
+ stale lockfile
171
+ </p>
172
+
173
+ </div>
174
+
175
+
176
+ <div id="method-list">
177
+ <h2 class="section-bar">Methods</h2>
178
+
179
+ <div class="name-list">
180
+ <a href="#M000256">kill</a>&nbsp;&nbsp;
181
+ <a href="#M000255">new</a>&nbsp;&nbsp;
182
+ </div>
183
+ </div>
184
+
185
+ <div id="constants-list">
186
+ <h2 class="section-bar">Constants</h2>
187
+
188
+ <div class="name-list">
189
+ <table summary="Constants">
190
+ <tr class="top-aligned-row context-row">
191
+ <td class="context-item-name">SIGNALS</td>
192
+ <td>=</td>
193
+ <td class="context-item-value">%w(SIGTERM SIGINT SIGKILL)</td>
194
+ </tr>
195
+ </table>
196
+ </div>
197
+ </div>
198
+
199
+
200
+
201
+ <div id="attribute-list">
202
+ <h2 class="section-bar">Attributes</h2>
203
+
204
+ <div class="name-list">
205
+ <table>
206
+ <tr class="top-aligned-row context-row">
207
+ <td class="context-item-name">path</td>
208
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
209
+ <td class="context-item-desc"></td>
210
+ </tr>
211
+ <tr class="top-aligned-row context-row">
212
+ <td class="context-item-name">pid</td>
213
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
214
+ <td class="context-item-desc"></td>
215
+ </tr>
216
+ <tr class="top-aligned-row context-row">
217
+ <td class="context-item-name">refresh_rate</td>
218
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
219
+ <td class="context-item-desc"></td>
220
+ </tr>
221
+ </table>
222
+ </div>
223
+ </div>
224
+
225
+
226
+ </div>
227
+
228
+
229
+
230
+ <!-- if includes -->
231
+
232
+
233
+ <!-- if method_list -->
234
+ <div id="methods">
235
+ <h2 class="section-bar">Public Class methods</h2>
236
+
237
+ <div id="method-M000255" class="method-detail">
238
+ <a name="M000255"></a>
239
+
240
+ <div class="method-heading">
241
+ <a href="#M000255" class="method-signature">
242
+ <span class="method-name">new</span><span class="method-args">path, refresh_rate = 8</span>
243
+ </a>
244
+ </div>
245
+
246
+ <div class="method-description">
247
+ <p><a class="source-toggle" href="#"
248
+ onclick="toggleCode('M000255-source');return false;">[Source]</a></p>
249
+ <div class="method-source-code" id="M000255-source">
250
+ <pre>
251
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/refresher.rb, line 21</span>
252
+ 21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">refresh_rate</span> = <span class="ruby-value">8</span>
253
+ 22: <span class="ruby-comment cmt">#--{{{</span>
254
+ 23: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
255
+ 24: <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span> <span class="ruby-identifier">path</span>
256
+ 25: <span class="ruby-ivar">@refresh_rate</span> = <span class="ruby-constant">Float</span> <span class="ruby-identifier">refresh_rate</span>
257
+ 26: <span class="ruby-ivar">@pipe</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-identifier">pipe</span>
258
+ 27: <span class="ruby-keyword kw">if</span>((<span class="ruby-ivar">@pid</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">fork</span>))
259
+ 28: <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">close</span>
260
+ 29: <span class="ruby-ivar">@pipe</span> = <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">first</span>
261
+ 30: <span class="ruby-ivar">@thread</span> = <span class="ruby-constant">Thread</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>{<span class="ruby-identifier">loop</span>{<span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">gets</span>}}
262
+ 31: <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">detach</span> <span class="ruby-ivar">@pid</span>
263
+ 32: <span class="ruby-keyword kw">else</span>
264
+ 33: <span class="ruby-keyword kw">begin</span>
265
+ 34: <span class="ruby-identifier">pid</span> = <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">pid</span>
266
+ 35: <span class="ruby-identifier">ppid</span> = <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">ppid</span>
267
+ 36: <span class="ruby-identifier">$0</span> = <span class="ruby-node">&quot;#{ path }.refresher.#{ pid }&quot;</span>
268
+ 37: <span class="ruby-constant">SIGNALS</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sig</span><span class="ruby-operator">|</span> <span class="ruby-identifier">trap</span>(<span class="ruby-identifier">sig</span>){ <span class="ruby-identifier">raise</span> }}
269
+ 38: <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">close</span>
270
+ 39: <span class="ruby-ivar">@pipe</span> = <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">last</span>
271
+ 40: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
272
+ 41: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">touch</span> <span class="ruby-ivar">@path</span>
273
+ 42: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@refresh_rate</span>
274
+ 43: <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">kill</span> <span class="ruby-value">0</span>, <span class="ruby-identifier">ppid</span>
275
+ 44: <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">pid</span>
276
+ 45: <span class="ruby-keyword kw">end</span>
277
+ 46: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
278
+ 47: <span class="ruby-identifier">exit!</span>
279
+ 48: <span class="ruby-keyword kw">end</span>
280
+ 49: <span class="ruby-keyword kw">end</span>
281
+ 50: <span class="ruby-comment cmt">#--}}}</span>
282
+ 51: <span class="ruby-keyword kw">end</span>
283
+ </pre>
284
+ </div>
285
+ </div>
286
+ </div>
287
+
288
+ <h2 class="section-bar">Public Instance methods</h2>
289
+
290
+ <div id="method-M000256" class="method-detail">
291
+ <a name="M000256"></a>
292
+
293
+ <div class="method-heading">
294
+ <a href="#M000256" class="method-signature">
295
+ <span class="method-name">kill</span><span class="method-args">()</span>
296
+ </a>
297
+ </div>
298
+
299
+ <div class="method-description">
300
+ <p><a class="source-toggle" href="#"
301
+ onclick="toggleCode('M000256-source');return false;">[Source]</a></p>
302
+ <div class="method-source-code" id="M000256-source">
303
+ <pre>
304
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/refresher.rb, line 52</span>
305
+ 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">kill</span>
306
+ 53: <span class="ruby-comment cmt">#--{{{</span>
307
+ 54: <span class="ruby-keyword kw">begin</span>
308
+ 55: <span class="ruby-ivar">@thread</span>.<span class="ruby-identifier">kill</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
309
+ 56: <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
310
+ 57: <span class="ruby-constant">SIGNALS</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sig</span><span class="ruby-operator">|</span> <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">kill</span> <span class="ruby-identifier">sig</span>, <span class="ruby-ivar">@pid</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>}
311
+ 58: <span class="ruby-keyword kw">ensure</span>
312
+ 59: =begin
313
+ 60: n = 42
314
+ 61: dead = false
315
+ 62: begin
316
+ 63: n.times do |i|
317
+ 64: Process::kill 0, @pid
318
+ 65: sleep 1
319
+ 66: end
320
+ 67: rescue Errno::ESRCH
321
+ 68: dead = true
322
+ 69: end
323
+ 70: raise &quot;runaway refresher &lt;#{ @pid }&gt; must be killed!&quot; unless dead
324
+ 71: =end
325
+ 72:
326
+ 73: <span class="ruby-keyword kw">end</span>
327
+ 74: <span class="ruby-comment cmt">#--}}}</span>
328
+ 75: <span class="ruby-keyword kw">end</span>
329
+ </pre>
330
+ </div>
331
+ </div>
332
+ </div>
333
+
334
+
335
+ </div>
336
+
337
+
338
+ </div>
339
+
340
+
341
+ <div id="validator-badges">
342
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
343
+ </div>
344
+
345
+ </body>
346
+ </html>
@@ -0,0 +1,51 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "DTD/xhtml1-transitional.dtd">
5
+
6
+ <!--
7
+
8
+ new (RQ::Refresher)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>new (RQ::Refresher)</title>
14
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
15
+ <link rel="stylesheet" href="http://www.FaerieMUD.org/stylesheets/rdoc.css" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <pre><span class="ruby-comment cmt"># File lib/rq-2.3.1/refresher.rb, line 21</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">refresh_rate</span> = <span class="ruby-value">8</span>
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
22
+ <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span> <span class="ruby-identifier">path</span>
23
+ <span class="ruby-ivar">@refresh_rate</span> = <span class="ruby-constant">Float</span> <span class="ruby-identifier">refresh_rate</span>
24
+ <span class="ruby-ivar">@pipe</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-identifier">pipe</span>
25
+ <span class="ruby-keyword kw">if</span>((<span class="ruby-ivar">@pid</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">fork</span>))
26
+ <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">close</span>
27
+ <span class="ruby-ivar">@pipe</span> = <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">first</span>
28
+ <span class="ruby-ivar">@thread</span> = <span class="ruby-constant">Thread</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>{<span class="ruby-identifier">loop</span>{<span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">gets</span>}}
29
+ <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">detach</span> <span class="ruby-ivar">@pid</span>
30
+ <span class="ruby-keyword kw">else</span>
31
+ <span class="ruby-keyword kw">begin</span>
32
+ <span class="ruby-identifier">pid</span> = <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">pid</span>
33
+ <span class="ruby-identifier">ppid</span> = <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">ppid</span>
34
+ <span class="ruby-identifier">$0</span> = <span class="ruby-node">&quot;#{ path }.refresher.#{ pid }&quot;</span>
35
+ <span class="ruby-constant">SIGNALS</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sig</span><span class="ruby-operator">|</span> <span class="ruby-identifier">trap</span>(<span class="ruby-identifier">sig</span>){ <span class="ruby-identifier">raise</span> }}
36
+ <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">close</span>
37
+ <span class="ruby-ivar">@pipe</span> = <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">last</span>
38
+ <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
39
+ <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">touch</span> <span class="ruby-ivar">@path</span>
40
+ <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@refresh_rate</span>
41
+ <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">kill</span> <span class="ruby-value">0</span>, <span class="ruby-identifier">ppid</span>
42
+ <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">pid</span>
43
+ <span class="ruby-keyword kw">end</span>
44
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
45
+ <span class="ruby-identifier">exit!</span>
46
+ <span class="ruby-keyword kw">end</span>
47
+ <span class="ruby-keyword kw">end</span>
48
+ <span class="ruby-comment cmt">#--}}}</span>
49
+ <span class="ruby-keyword kw">end</span></pre>
50
+ </body>
51
+ </html>
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "DTD/xhtml1-transitional.dtd">
5
+
6
+ <!--
7
+
8
+ kill (RQ::Refresher)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>kill (RQ::Refresher)</title>
14
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
15
+ <link rel="stylesheet" href="http://www.FaerieMUD.org/stylesheets/rdoc.css" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <pre><span class="ruby-comment cmt"># File lib/rq-2.3.1/refresher.rb, line 52</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">kill</span>
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-keyword kw">begin</span>
22
+ <span class="ruby-ivar">@thread</span>.<span class="ruby-identifier">kill</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
23
+ <span class="ruby-ivar">@pipe</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
24
+ <span class="ruby-constant">SIGNALS</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">sig</span><span class="ruby-operator">|</span> <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">kill</span> <span class="ruby-identifier">sig</span>, <span class="ruby-ivar">@pid</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>}
25
+ <span class="ruby-keyword kw">ensure</span>
26
+ =begin
27
+ n = 42
28
+ dead = false
29
+ begin
30
+ n.times do |i|
31
+ Process::kill 0, @pid
32
+ sleep 1
33
+ end
34
+ rescue Errno::ESRCH
35
+ dead = true
36
+ end
37
+ raise &quot;runaway refresher &lt;#{ @pid }&gt; must be killed!&quot; unless dead
38
+ =end
39
+
40
+ <span class="ruby-keyword kw">end</span>
41
+ <span class="ruby-comment cmt">#--}}}</span>
42
+ <span class="ruby-keyword kw">end</span></pre>
43
+ </body>
44
+ </html>
@@ -0,0 +1,723 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: RQ::Relayer</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <h1>RQ::Relayer <sup class="type-note">(Class)</sup></h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>In:</strong></td>
54
+ <td>
55
+ <a href="../../files/lib/rq-3_0_0/relayer_rb.html">
56
+ lib/rq-3.0.0/relayer.rb
57
+ </a>
58
+ <br />
59
+ </td>
60
+ </tr>
61
+
62
+ <tr class="top-aligned-row">
63
+ <td><strong>Parent:</strong></td>
64
+ <td>
65
+ <a href="MainHelper.html">
66
+ MainHelper
67
+ </a>
68
+ </td>
69
+ </tr>
70
+ </table>
71
+ </div>
72
+ <!-- banner header -->
73
+
74
+ <div id="bodyContent">
75
+
76
+
77
+ <div id="contextContent">
78
+ <div id="diagram">
79
+ <map name="map">
80
+ <area shape="RECT" coords="1093,335,1176,287" href="MainHelper.html" alt="MainHelper">
81
+ <area shape="RECT" coords="67,453,152,405" href="StatusLister.html" alt="StatusLister">
82
+ <area shape="RECT" coords="215,453,303,405" href="Snapshotter.html" alt="Snapshotter">
83
+ <area shape="RECT" coords="363,453,451,405" href="ReSubmitter.html" alt="ReSubmitter">
84
+ <area shape="RECT" coords="504,453,576,405" href="Feeder.html" alt="Feeder">
85
+ <area shape="RECT" coords="632,453,704,405" href="Deleter.html" alt="Deleter">
86
+ <area shape="RECT" coords="763,453,835,405" href="Toucher.html" alt="Toucher">
87
+ <area shape="RECT" coords="891,453,963,405" href="Relayer.html" alt="Relayer">
88
+ <area shape="RECT" coords="1027,453,1099,405" href="Executor.html" alt="Executor">
89
+ <area shape="RECT" coords="1131,453,1205,405" href="Submitter.html" alt="Submitter">
90
+ <area shape="RECT" coords="1269,453,1341,405" href="Locker.html" alt="Locker">
91
+ <area shape="RECT" coords="1393,453,1468,405" href="IOViewer.html" alt="IOViewer">
92
+ <area shape="RECT" coords="1528,453,1600,405" href="Backer.html" alt="Backer">
93
+ <area shape="RECT" coords="1656,453,1728,405" href="Cron.html" alt="Cron">
94
+ <area shape="RECT" coords="1773,453,1861,405" href="Configurator.html" alt="Configurator">
95
+ <area shape="RECT" coords="1924,453,1996,405" href="Lister.html" alt="Lister">
96
+ <area shape="RECT" coords="2043,453,2115,405" href="Rotater.html" alt="Rotater">
97
+ <area shape="RECT" coords="2169,453,2241,405" href="Creator.html" alt="Creator">
98
+ <area shape="RECT" coords="2299,453,2379,405" href="Recoverer.html" alt="Recoverer">
99
+ <area shape="RECT" coords="2439,453,2511,405" href="Updater.html" alt="Updater">
100
+ <area shape="RECT" coords="2571,453,2643,405" href="Querier.html" alt="Querier">
101
+ <area shape="RECT" coords="1868,53,1940,5" href="../Hash.html" alt="::Hash">
102
+ <area shape="RECT" coords="1865,216,1943,168" href="ConfigFile.html" alt="ConfigFile">
103
+ <area shape="RECT" coords="1996,53,2089,5" href="../DRbUndumped.html" alt="DRbUndumped">
104
+ <area shape="RECT" coords="2001,216,2084,168" href="JobRunner.html" alt="JobRunner">
105
+ <area shape="RECT" coords="1463,335,1535,287" href="Main.html" alt="Main">
106
+ <area shape="RECT" coords="1213,335,1285,287" href="QDB.html" alt="QDB">
107
+ <area shape="RECT" coords="1323,335,1403,287" href="JobQueue.html" alt="JobQueue">
108
+ <area shape="RECT" coords="904,335,1027,287" href="JobRunnerDaemon.html" alt="JobRunnerDaemon">
109
+ <area shape="RECT" coords="2173,53,2245,5" href="../Array.html" alt="Array">
110
+ <area shape="RECT" coords="2159,216,2241,168" href="SleepCycle.html" alt="SleepCycle">
111
+ <area shape="RECT" coords="2273,216,2345,168" href="Job.html" alt="Job">
112
+ <area shape="RECT" coords="2272,53,2347,5" href="../ArrayFields.html" alt="ArrayFields">
113
+ <area shape="RECT" coords="2407,53,2505,5" href="../OrderedHash.html" alt="::OrderedHash">
114
+ <area shape="RECT" coords="2399,216,2513,168" href="OrderedAutoHash.html" alt="OrderedAutoHash">
115
+ <area shape="RECT" coords="925,53,1005,5" href="../LogMethods.html" alt="LogMethods">
116
+ <area shape="RECT" coords="2575,216,2652,168" href="Refresher.html" alt="Refresher">
117
+ <area shape="RECT" coords="1687,216,1804,168" href="ResourceManager.html" alt="ResourceManager">
118
+ <area shape="RECT" coords="1549,216,1624,168" href="Resource.html" alt="Resource">
119
+ <area shape="RECT" coords="2549,227,2677,135" href="../RQ.html" alt="lib/rq-3.0.0/refresher.rb">
120
+ <area shape="RECT" coords="173,464,313,372" href="../RQ.html" alt="lib/rq-3.0.0/snapshotter.rb">
121
+ <area shape="RECT" coords="597,464,715,372" href="../RQ.html" alt="lib/rq-3.0.0/deleter.rb">
122
+ <area shape="RECT" coords="472,464,587,372" href="../RQ.html" alt="lib/rq-3.0.0/feeder.rb">
123
+ <area shape="RECT" coords="1763,464,1903,372" href="../RQ.html" alt="lib/rq-3.0.0/configurator.rb">
124
+ <area shape="RECT" coords="1645,464,1752,372" href="../RQ.html" alt="lib/rq-3.0.0/cron.rb">
125
+ <area shape="RECT" coords="1312,345,1441,253" href="../RQ.html" alt="lib/rq-3.0.0/jobqueue.rb">
126
+ <area shape="RECT" coords="2032,464,2148,372" href="../RQ.html" alt="lib/rq-3.0.0/rotater.rb">
127
+ <area shape="RECT" coords="1517,464,1635,372" href="../RQ.html" alt="lib/rq-3.0.0/backer.rb">
128
+ <area shape="RECT" coords="725,464,845,372" href="../RQ.html" alt="lib/rq-3.0.0/toucher.rb">
129
+ <area shape="RECT" coords="1197,345,1301,253" href="../RQ.html" alt="lib/rq-3.0.0/qdb.rb">
130
+ <area shape="RECT" coords="1840,227,1967,135" href="../RQ.html" alt="lib/rq-3.0.0/configfile.rb">
131
+ <area shape="RECT" coords="1049,345,1187,253" href="../RQ.html" alt="lib/rq-3.0.0/mainhelper.rb">
132
+ <area shape="RECT" coords="1913,464,2021,372" href="../RQ.html" alt="lib/rq-3.0.0/lister.rb">
133
+ <area shape="RECT" coords="1452,345,1545,253" href="../RQ.html" alt="bin/rq.rb">
134
+ <area shape="RECT" coords="27,464,163,372" href="../RQ.html" alt="lib/rq-3.0.0/statuslister.rb">
135
+ <area shape="RECT" coords="2428,464,2549,372" href="../RQ.html" alt="lib/rq-3.0.0/updater.rb">
136
+ <area shape="RECT" coords="1977,227,2107,135" href="../RQ.html" alt="lib/rq-3.0.0/jobrunner.rb">
137
+ <area shape="RECT" coords="2263,227,2363,135" href="../RQ.html" alt="lib/rq-3.0.0/job.rb">
138
+ <area shape="RECT" coords="2159,464,2277,372" href="../RQ.html" alt="lib/rq-3.0.0/creator.rb">
139
+ <area shape="RECT" coords="2117,227,2252,135" href="../RQ.html" alt="lib/rq-3.0.0/sleepcycle.rb">
140
+ <area shape="RECT" coords="984,464,1109,372" href="../RQ.html" alt="lib/rq-3.0.0/executor.rb">
141
+ <area shape="RECT" coords="324,464,461,372" href="../RQ.html" alt="lib/rq-3.0.0/resubmitter.rb">
142
+ <area shape="RECT" coords="2373,227,2539,135" href="../RQ.html" alt="lib/rq-3.0.0/orderedautohash.rb">
143
+ <area shape="RECT" coords="1661,227,1829,135" href="../RQ.html" alt="lib/rq-3.0.0/resourcemanager.rb">
144
+ <area shape="RECT" coords="1524,227,1651,135" href="../RQ.html" alt="lib/rq-3.0.0/resource.rb">
145
+ <area shape="RECT" coords="869,345,1037,253" href="../RQ.html" alt="lib/rq-3.0.0/jobrunnerdaemon.rb">
146
+ <area shape="RECT" coords="2288,464,2417,372" href="../RQ.html" alt="lib/rq-3.0.0/recoverer.rb">
147
+ <area shape="RECT" coords="2560,464,2677,372" href="../RQ.html" alt="lib/rq-3.0.0/querier.rb">
148
+ <area shape="RECT" coords="1383,464,1507,372" href="../RQ.html" alt="lib/rq-3.0.0/ioviewer.rb">
149
+ <area shape="RECT" coords="1259,464,1372,372" href="../RQ.html" alt="lib/rq-3.0.0/locker.rb">
150
+ <area shape="RECT" coords="1120,464,1248,372" href="../RQ.html" alt="lib/rq-3.0.0/submitter.rb">
151
+ <area shape="RECT" coords="856,464,973,372" href="../RQ.html" alt="lib/rq-3.0.0/relayer.rb">
152
+ <area shape="RECT" coords="1420,204,1513,157" href="Usage.html" alt="Usage">
153
+ <area shape="RECT" coords="1316,204,1409,157" href="Util.html" alt="Util">
154
+ <area shape="RECT" coords="1188,204,1295,157" href="Logging/LogClassMethods.html" alt="LogClassMethods">
155
+ <area shape="RECT" coords="1084,204,1177,157" href="Logging/LoggerExt.html" alt="LoggerExt">
156
+ <area shape="RECT" coords="980,204,1073,157" href="Logging/LogMethods.html" alt="LogMethods">
157
+ <area shape="RECT" coords="953,215,1305,124" href="Logging.html" alt="Logging">
158
+ <area shape="RECT" coords="16,475,2688,91" href="../RQ.html" alt="RQ">
159
+ </map>
160
+ <img src="../../dot/m_44_0.jpg" usemap="#map" border=0 alt="Module: RQ">
161
+ </div>
162
+
163
+
164
+
165
+ <div id="method-list">
166
+ <h2 class="section-bar">Methods</h2>
167
+
168
+ <div class="name-list">
169
+ <a href="#M000118">daemon</a>&nbsp;&nbsp;
170
+ <a href="#M000119">gen_pidfile</a>&nbsp;&nbsp;
171
+ <a href="#M000120">gen_relayer_name</a>&nbsp;&nbsp;
172
+ <a href="#M000122">handle_signal</a>&nbsp;&nbsp;
173
+ <a href="#M000121">install_signal_handlers</a>&nbsp;&nbsp;
174
+ <a href="#M000127">reap</a>&nbsp;&nbsp;
175
+ <a href="#M000126">reap_and_sow</a>&nbsp;&nbsp;
176
+ <a href="#M000125">relax</a>&nbsp;&nbsp;
177
+ <a href="#M000117">relay</a>&nbsp;&nbsp;
178
+ <a href="#M000123">throttle</a>&nbsp;&nbsp;
179
+ <a href="#M000124">transaction</a>&nbsp;&nbsp;
180
+ </div>
181
+ </div>
182
+
183
+ <div id="constants-list">
184
+ <h2 class="section-bar">Constants</h2>
185
+
186
+ <div class="name-list">
187
+ <table summary="Constants">
188
+ <tr class="top-aligned-row context-row">
189
+ <td class="context-item-name">DEFAULT_MIN_SLEEP</td>
190
+ <td>=</td>
191
+ <td class="context-item-value">42</td>
192
+ </tr>
193
+ <tr class="top-aligned-row context-row">
194
+ <td class="context-item-name">DEFAULT_MAX_SLEEP</td>
195
+ <td>=</td>
196
+ <td class="context-item-value">240</td>
197
+ </tr>
198
+ <tr class="top-aligned-row context-row">
199
+ <td class="context-item-name">DEFAULT_RELAY</td>
200
+ <td>=</td>
201
+ <td class="context-item-value">16</td>
202
+ </tr>
203
+ </table>
204
+ </div>
205
+ </div>
206
+
207
+
208
+
209
+ <div id="attribute-list">
210
+ <h2 class="section-bar">Attributes</h2>
211
+
212
+ <div class="name-list">
213
+ <table>
214
+ <tr class="top-aligned-row context-row">
215
+ <td class="context-item-name">max_sleep</td>
216
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
217
+ <td class="context-item-desc"></td>
218
+ </tr>
219
+ <tr class="top-aligned-row context-row">
220
+ <td class="context-item-name">min_sleep</td>
221
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
222
+ <td class="context-item-desc"></td>
223
+ </tr>
224
+ <tr class="top-aligned-row context-row">
225
+ <td class="context-item-name">relay</td>
226
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
227
+ <td class="context-item-desc"></td>
228
+ </tr>
229
+ </table>
230
+ </div>
231
+ </div>
232
+
233
+
234
+ </div>
235
+
236
+
237
+
238
+ <!-- if includes -->
239
+
240
+
241
+ <!-- if method_list -->
242
+ <div id="methods">
243
+ <h2 class="section-bar">Public Instance methods</h2>
244
+
245
+ <div id="method-M000118" class="method-detail">
246
+ <a name="M000118"></a>
247
+
248
+ <div class="method-heading">
249
+ <a href="#M000118" class="method-signature">
250
+ <span class="method-name">daemon</span><span class="method-args">() {|| ...}</span>
251
+ </a>
252
+ </div>
253
+
254
+ <div class="method-description">
255
+ <p><a class="source-toggle" href="#"
256
+ onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
257
+ <div class="method-source-code" id="M000118-source">
258
+ <pre>
259
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 98</span>
260
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">daemon</span>
261
+ 99: <span class="ruby-comment cmt">#--{{{</span>
262
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value str">'daemon'</span>]
263
+ 101: <span class="ruby-identifier">fork</span> <span class="ruby-keyword kw">do</span>
264
+ 102: <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">setsid</span>
265
+ 103: <span class="ruby-identifier">fork</span> <span class="ruby-keyword kw">do</span>
266
+ 104: <span class="ruby-constant">Dir</span><span class="ruby-operator">::</span><span class="ruby-identifier">chdir</span>(<span class="ruby-constant">Util</span>.<span class="ruby-identifier">realpath</span>(<span class="ruby-value str">'~'</span>))
267
+ 105: <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">umask</span> <span class="ruby-value">0</span>
268
+ 106: <span class="ruby-identifier">open</span>(<span class="ruby-value str">'/dev/null'</span>,<span class="ruby-value str">'r+'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
269
+ 107: <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-identifier">f</span>
270
+ 108: <span class="ruby-constant">STDOUT</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-identifier">f</span>
271
+ 109: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-identifier">f</span>
272
+ 110: <span class="ruby-keyword kw">end</span>
273
+ 111: <span class="ruby-ivar">@daemon</span> = <span class="ruby-keyword kw">true</span>
274
+ 112: <span class="ruby-keyword kw">yield</span>
275
+ 113: <span class="ruby-identifier">exit</span> <span class="ruby-constant">EXIT_SUCCESS</span>
276
+ 114: <span class="ruby-keyword kw">end</span>
277
+ 115: <span class="ruby-identifier">exit!</span>
278
+ 116: <span class="ruby-keyword kw">end</span>
279
+ 117: <span class="ruby-identifier">exit!</span>
280
+ 118: <span class="ruby-keyword kw">else</span>
281
+ 119: <span class="ruby-ivar">@daemon</span> = <span class="ruby-keyword kw">false</span>
282
+ 120: <span class="ruby-keyword kw">yield</span>
283
+ 121: <span class="ruby-identifier">exit</span> <span class="ruby-constant">EXIT_SUCCESS</span>
284
+ 122: <span class="ruby-keyword kw">end</span>
285
+ 123: <span class="ruby-comment cmt">#--}}}</span>
286
+ 124: <span class="ruby-keyword kw">end</span>
287
+ </pre>
288
+ </div>
289
+ </div>
290
+ </div>
291
+
292
+ <div id="method-M000119" class="method-detail">
293
+ <a name="M000119"></a>
294
+
295
+ <div class="method-heading">
296
+ <a href="#M000119" class="method-signature">
297
+ <span class="method-name">gen_pidfile</span><span class="method-args">name = nil</span>
298
+ </a>
299
+ </div>
300
+
301
+ <div class="method-description">
302
+ <p><a class="source-toggle" href="#"
303
+ onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
304
+ <div class="method-source-code" id="M000119-source">
305
+ <pre>
306
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 125</span>
307
+ 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gen_pidfile</span> <span class="ruby-identifier">name</span> = <span class="ruby-keyword kw">nil</span>
308
+ 126: <span class="ruby-comment cmt">#--{{{</span>
309
+ 127: <span class="ruby-identifier">name</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">gen_relayer_name</span>(<span class="ruby-ivar">@options</span>[<span class="ruby-value str">'name'</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@qpath</span>)
310
+ 128: <span class="ruby-ivar">@pidfile</span> =
311
+ 129: <span class="ruby-keyword kw">begin</span>
312
+ 130: <span class="ruby-identifier">open</span> <span class="ruby-identifier">name</span>, <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">CREAT</span> <span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">EXCL</span> <span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">RDWR</span>
313
+ 131: <span class="ruby-keyword kw">rescue</span>
314
+ 132: <span class="ruby-identifier">open</span> <span class="ruby-identifier">name</span>, <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">RDWR</span>
315
+ 133: <span class="ruby-keyword kw">end</span>
316
+ 134: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@pidfile</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">posixlock</span>(<span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_EX</span> <span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_NB</span>)
317
+ 135: <span class="ruby-identifier">pid</span> = <span class="ruby-constant">IO</span><span class="ruby-operator">::</span><span class="ruby-identifier">read</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
318
+ 136: <span class="ruby-identifier">pid</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'unknown'</span>
319
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value str">'quiet'</span>]
320
+ 138: <span class="ruby-identifier">exit</span> <span class="ruby-constant">EXIT_FAILURE</span>
321
+ 139: <span class="ruby-keyword kw">else</span>
322
+ 140: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;process &lt;#{ pid }&gt; is already relaying from this queue&quot;</span>
323
+ 141: <span class="ruby-keyword kw">end</span>
324
+ 142: <span class="ruby-keyword kw">else</span>
325
+ 143: <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">rewind</span>
326
+ 144: <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">sync</span> = <span class="ruby-keyword kw">true</span>
327
+ 145: <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">print</span> <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">pid</span>
328
+ 146: <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">truncate</span> <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">pos</span>
329
+ 147: <span class="ruby-identifier">at_exit</span>{ <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_f</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span> }
330
+ 148: <span class="ruby-keyword kw">end</span>
331
+ 149: <span class="ruby-comment cmt">#--}}}</span>
332
+ 150: <span class="ruby-keyword kw">end</span>
333
+ </pre>
334
+ </div>
335
+ </div>
336
+ </div>
337
+
338
+ <div id="method-M000120" class="method-detail">
339
+ <a name="M000120"></a>
340
+
341
+ <div class="method-heading">
342
+ <a href="#M000120" class="method-signature">
343
+ <span class="method-name">gen_relayer_name</span><span class="method-args">path</span>
344
+ </a>
345
+ </div>
346
+
347
+ <div class="method-description">
348
+ <p><a class="source-toggle" href="#"
349
+ onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
350
+ <div class="method-source-code" id="M000120-source">
351
+ <pre>
352
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 151</span>
353
+ 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">gen_relayer_name</span> <span class="ruby-identifier">path</span>
354
+ 152: <span class="ruby-comment cmt">#--{{{</span>
355
+ 153: <span class="ruby-identifier">path</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">realpath</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">%|/|o</span>, <span class="ruby-value str">'_'</span>)
356
+ 154: <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">realpath</span>(<span class="ruby-value str">'~'</span>), <span class="ruby-node">&quot;.#{ path }.relayer&quot;</span>)
357
+ 155: <span class="ruby-comment cmt">#--}}}</span>
358
+ 156: <span class="ruby-keyword kw">end</span>
359
+ </pre>
360
+ </div>
361
+ </div>
362
+ </div>
363
+
364
+ <div id="method-M000122" class="method-detail">
365
+ <a name="M000122"></a>
366
+
367
+ <div class="method-heading">
368
+ <a href="#M000122" class="method-signature">
369
+ <span class="method-name">handle_signal</span><span class="method-args">()</span>
370
+ </a>
371
+ </div>
372
+
373
+ <div class="method-description">
374
+ <p><a class="source-toggle" href="#"
375
+ onclick="toggleCode('M000122-source');return false;">[Source]</a></p>
376
+ <div class="method-source-code" id="M000122-source">
377
+ <pre>
378
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 183</span>
379
+ 183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_signal</span>
380
+ 184: <span class="ruby-comment cmt">#--{{{</span>
381
+ 185: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$rq_sigterm</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">$rq_sigint</span>
382
+ 186: <span class="ruby-identifier">reap_jobs</span>(<span class="ruby-identifier">reap_only</span> = <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">nothing_running?</span>
383
+ 187: <span class="ruby-identifier">info</span>{ <span class="ruby-value str">&quot;** STOPPING **&quot;</span> }
384
+ 188: <span class="ruby-ivar">@jrd</span>.<span class="ruby-identifier">shutdown</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
385
+ 189: <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">posixlock</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_UN</span>
386
+ 190: <span class="ruby-identifier">exit</span> <span class="ruby-constant">EXIT_SUCCESS</span>
387
+ 191: <span class="ruby-keyword kw">end</span>
388
+ 192:
389
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$rq_sighup</span>
390
+ 194: <span class="ruby-identifier">reap_jobs</span>(<span class="ruby-identifier">reap_only</span> = <span class="ruby-keyword kw">true</span>) <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">nothing_running?</span>
391
+ 195: <span class="ruby-identifier">info</span>{ <span class="ruby-value str">&quot;** RESTARTING **&quot;</span> }
392
+ 196: <span class="ruby-ivar">@jrd</span>.<span class="ruby-identifier">shutdown</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
393
+ 197: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-keyword kw">__FILE__</span>
394
+ 198: <span class="ruby-ivar">@pidfile</span>.<span class="ruby-identifier">posixlock</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_UN</span>
395
+ 199: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">exec</span> <span class="ruby-ivar">@cmd</span>
396
+ 200: <span class="ruby-keyword kw">end</span>
397
+ 201: <span class="ruby-comment cmt">#--}}}</span>
398
+ 202: <span class="ruby-keyword kw">end</span>
399
+ </pre>
400
+ </div>
401
+ </div>
402
+ </div>
403
+
404
+ <div id="method-M000121" class="method-detail">
405
+ <a name="M000121"></a>
406
+
407
+ <div class="method-heading">
408
+ <a href="#M000121" class="method-signature">
409
+ <span class="method-name">install_signal_handlers</span><span class="method-args">()</span>
410
+ </a>
411
+ </div>
412
+
413
+ <div class="method-description">
414
+ <p><a class="source-toggle" href="#"
415
+ onclick="toggleCode('M000121-source');return false;">[Source]</a></p>
416
+ <div class="method-source-code" id="M000121-source">
417
+ <pre>
418
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 157</span>
419
+ 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">install_signal_handlers</span>
420
+ 158: <span class="ruby-comment cmt">#--{{{</span>
421
+ 159: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@daemon</span>
422
+ 160: <span class="ruby-identifier">$rq_signaled</span> = <span class="ruby-keyword kw">false</span>
423
+ 161: <span class="ruby-identifier">$rq_sighup</span> = <span class="ruby-keyword kw">false</span>
424
+ 162: <span class="ruby-identifier">$rq_sigterm</span> = <span class="ruby-keyword kw">false</span>
425
+ 163: <span class="ruby-identifier">$rq_sigint</span> = <span class="ruby-keyword kw">false</span>
426
+ 164: <span class="ruby-identifier">trap</span>(<span class="ruby-value str">'SIGHUP'</span>) <span class="ruby-keyword kw">do</span>
427
+ 165: <span class="ruby-identifier">$rq_signaled</span> = <span class="ruby-identifier">$rq_sighup</span> = <span class="ruby-value str">'SIGHUP'</span>
428
+ 166: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;signal &lt;SIGHUP&gt;&quot;</span> }
429
+ 167: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;finishing running jobs before handling signal&quot;</span> }
430
+ 168: <span class="ruby-keyword kw">end</span>
431
+ 169: <span class="ruby-identifier">trap</span>(<span class="ruby-value str">'SIGTERM'</span>) <span class="ruby-keyword kw">do</span>
432
+ 170: <span class="ruby-identifier">$rq_signaled</span> = <span class="ruby-identifier">$rq_sigterm</span> = <span class="ruby-value str">'SIGTERM'</span>
433
+ 171: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;signal &lt;SIGTERM&gt;&quot;</span> }
434
+ 172: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;finishing running jobs before handling signal&quot;</span> }
435
+ 173: <span class="ruby-keyword kw">end</span>
436
+ 174: <span class="ruby-identifier">trap</span>(<span class="ruby-value str">'SIGINT'</span>) <span class="ruby-keyword kw">do</span>
437
+ 175: <span class="ruby-identifier">$rq_signaled</span> = <span class="ruby-identifier">$rq_sigint</span> = <span class="ruby-value str">'SIGINT'</span>
438
+ 176: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;signal &lt;SIGINT&gt;&quot;</span> }
439
+ 177: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;finishing running jobs before handling signal&quot;</span> }
440
+ 178: <span class="ruby-keyword kw">end</span>
441
+ 179: <span class="ruby-ivar">@jrd</span>.<span class="ruby-identifier">install_signal_handlers</span>
442
+ 180: <span class="ruby-keyword kw">end</span>
443
+ 181: <span class="ruby-comment cmt">#--}}}</span>
444
+ 182: <span class="ruby-keyword kw">end</span>
445
+ </pre>
446
+ </div>
447
+ </div>
448
+ </div>
449
+
450
+ <div id="method-M000127" class="method-detail">
451
+ <a name="M000127"></a>
452
+
453
+ <div class="method-heading">
454
+ <a href="#M000127" class="method-signature">
455
+ <span class="method-name">reap</span><span class="method-args">()</span>
456
+ </a>
457
+ </div>
458
+
459
+ <div class="method-description">
460
+ <p><a class="source-toggle" href="#"
461
+ onclick="toggleCode('M000127-source');return false;">[Source]</a></p>
462
+ <div class="method-source-code" id="M000127-source">
463
+ <pre>
464
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 256</span>
465
+ 256: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reap</span>
466
+ 257: <span class="ruby-comment cmt">#--{{{</span>
467
+ 258: <span class="ruby-identifier">debug</span>{ <span class="ruby-value str">&quot;reaping finished/dead jobs&quot;</span> }
468
+ 259:
469
+ 260: <span class="ruby-identifier">sql</span> = <span class="ruby-value str">&quot;select jid from jobs where or state='running'\n&quot;</span>
470
+ 261: <span class="ruby-identifier">tuples</span> = <span class="ruby-identifier">hdb</span>.<span class="ruby-identifier">execute</span> <span class="ruby-identifier">sql</span>
471
+ 262: <span class="ruby-identifier">hjids</span> = <span class="ruby-identifier">tuples</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>[<span class="ruby-value str">'jid'</span>]}
472
+ 263:
473
+ 264: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">jids</span>.<span class="ruby-identifier">empty</span>
474
+ 265: <span class="ruby-identifier">where_clauses</span> = <span class="ruby-identifier">hjids</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">hjid</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;jid=#{ hjid }&quot;</span> }
475
+ 266: <span class="ruby-identifier">where_clause</span> = <span class="ruby-identifier">where_clauses</span>.<span class="ruby-identifier">join</span> <span class="ruby-value str">' or '</span>
476
+ 267: <span class="ruby-identifier">sql</span> = <span class="ruby-value str">&quot;select jid from jobs where state='finished' or state='dead' and (\#{ where_clause })\n&quot;</span>
477
+ 268: <span class="ruby-keyword kw">end</span>
478
+ 269:
479
+ 270: <span class="ruby-identifier">debug</span>{ <span class="ruby-value str">&quot;reaped finished/dead jobs&quot;</span> }
480
+ 271: <span class="ruby-keyword kw">self</span>
481
+ 272: <span class="ruby-comment cmt">#--}}}</span>
482
+ 273: <span class="ruby-keyword kw">end</span>
483
+ </pre>
484
+ </div>
485
+ </div>
486
+ </div>
487
+
488
+ <div id="method-M000126" class="method-detail">
489
+ <a name="M000126"></a>
490
+
491
+ <div class="method-heading">
492
+ <a href="#M000126" class="method-signature">
493
+ <span class="method-name">reap_and_sow</span><span class="method-args">()</span>
494
+ </a>
495
+ </div>
496
+
497
+ <div class="method-description">
498
+ <p>
499
+ TODO - this will need to map jids here to jids there
500
+ </p>
501
+ <p><a class="source-toggle" href="#"
502
+ onclick="toggleCode('M000126-source');return false;">[Source]</a></p>
503
+ <div class="method-source-code" id="M000126-source">
504
+ <pre>
505
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 251</span>
506
+ 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reap_and_sow</span>
507
+ 252: <span class="ruby-comment cmt">#--{{{</span>
508
+ 253: <span class="ruby-identifier">transaction</span>{ <span class="ruby-identifier">reap</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">sow</span> }
509
+ 254: <span class="ruby-comment cmt">#--}}}</span>
510
+ 255: <span class="ruby-keyword kw">end</span>
511
+ </pre>
512
+ </div>
513
+ </div>
514
+ </div>
515
+
516
+ <div id="method-M000125" class="method-detail">
517
+ <a name="M000125"></a>
518
+
519
+ <div class="method-heading">
520
+ <a href="#M000125" class="method-signature">
521
+ <span class="method-name">relax</span><span class="method-args">()</span>
522
+ </a>
523
+ </div>
524
+
525
+ <div class="method-description">
526
+ <p><a class="source-toggle" href="#"
527
+ onclick="toggleCode('M000125-source');return false;">[Source]</a></p>
528
+ <div class="method-source-code" id="M000125-source">
529
+ <pre>
530
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 240</span>
531
+ 240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relax</span>
532
+ 241: <span class="ruby-comment cmt">#--{{{</span>
533
+ 242: <span class="ruby-identifier">seconds</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-ivar">@max_sleep</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@min_sleep</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator">+</span> <span class="ruby-ivar">@min_sleep</span>
534
+ 243: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;relaxing &lt;#{ seconds }&gt;&quot;</span> }
535
+ 244: <span class="ruby-identifier">sleep</span> <span class="ruby-identifier">seconds</span>
536
+ 245: <span class="ruby-comment cmt">#--}}}</span>
537
+ 246: <span class="ruby-keyword kw">end</span>
538
+ </pre>
539
+ </div>
540
+ </div>
541
+ </div>
542
+
543
+ <div id="method-M000117" class="method-detail">
544
+ <a name="M000117"></a>
545
+
546
+ <div class="method-heading">
547
+ <a href="#M000117" class="method-signature">
548
+ <span class="method-name">relay</span><span class="method-args">()</span>
549
+ </a>
550
+ </div>
551
+
552
+ <div class="method-description">
553
+ <p><a class="source-toggle" href="#"
554
+ onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
555
+ <div class="method-source-code" id="M000117-source">
556
+ <pre>
557
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 27</span>
558
+ 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">relay</span>
559
+ 28: <span class="ruby-comment cmt">#--{{{</span>
560
+ 29: <span class="ruby-identifier">daemon</span> <span class="ruby-keyword kw">do</span>
561
+ 30: <span class="ruby-identifier">gen_pidfile</span>
562
+ 31: <span class="ruby-ivar">@main</span>.<span class="ruby-identifier">init_logging</span>
563
+ 32: <span class="ruby-ivar">@logger</span> = <span class="ruby-ivar">@main</span>.<span class="ruby-identifier">logger</span>
564
+ 33:
565
+ 34: <span class="ruby-identifier">set_q</span>
566
+ 35:
567
+ 36: <span class="ruby-comment cmt">#</span>
568
+ 37: <span class="ruby-comment cmt"># munge @q/@qpath to set there</span>
569
+ 38: <span class="ruby-comment cmt">#</span>
570
+ 39: <span class="ruby-ivar">@here</span> = <span class="ruby-ivar">@q</span>
571
+ 40: <span class="ruby-ivar">@qpath</span> = <span class="ruby-identifier">realpath</span> <span class="ruby-ivar">@main</span>.<span class="ruby-identifier">argv</span>.<span class="ruby-identifier">shift</span>
572
+ 41: <span class="ruby-identifier">set_q</span>
573
+ 42: <span class="ruby-ivar">@there</span> = <span class="ruby-ivar">@q</span>
574
+ 43: <span class="ruby-ivar">@q</span> = <span class="ruby-ivar">@here</span>
575
+ 44: <span class="ruby-ivar">@hdb</span> = <span class="ruby-ivar">@here</span>.<span class="ruby-identifier">qdb</span>
576
+ 45: <span class="ruby-ivar">@tdb</span> = <span class="ruby-ivar">@there</span>.<span class="ruby-identifier">qdb</span>
577
+ 46:
578
+ 47: <span class="ruby-ivar">@pid</span> = <span class="ruby-constant">Process</span><span class="ruby-operator">::</span><span class="ruby-identifier">pid</span>
579
+ 48: <span class="ruby-ivar">@cmd</span> = <span class="ruby-ivar">@main</span>.<span class="ruby-identifier">cmd</span>
580
+ 49: <span class="ruby-ivar">@started</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">timestamp</span>
581
+ 50: <span class="ruby-ivar">@min_sleep</span> = <span class="ruby-constant">Integer</span>(<span class="ruby-ivar">@options</span>[<span class="ruby-value str">'min_sleep'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">defval</span>(<span class="ruby-value str">'min_sleep'</span>))
582
+ 51: <span class="ruby-ivar">@max_sleep</span> = <span class="ruby-constant">Integer</span>(<span class="ruby-ivar">@options</span>[<span class="ruby-value str">'max_sleep'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">defval</span>(<span class="ruby-value str">'max_sleep'</span>))
583
+ 52: <span class="ruby-ivar">@relay</span> = <span class="ruby-constant">Integer</span>(<span class="ruby-ivar">@options</span>[<span class="ruby-value str">'number'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">defval</span>(<span class="ruby-value str">'relay'</span>))
584
+ 53:
585
+ 54: <span class="ruby-ivar">@transactions</span> = {}
586
+ 55:
587
+ 56:
588
+ 57: <span class="ruby-identifier">install_signal_handlers</span>
589
+ 58:
590
+ 59: <span class="ruby-identifier">info</span>{ <span class="ruby-value str">&quot;** STARTED **&quot;</span> }
591
+ 60: <span class="ruby-identifier">info</span>{ <span class="ruby-node">&quot;version &lt;#{ RQ::VERSION }&gt;&quot;</span> }
592
+ 61: <span class="ruby-identifier">info</span>{ <span class="ruby-node">&quot;cmd &lt;#{ @cmd }&gt;&quot;</span> }
593
+ 62: <span class="ruby-identifier">info</span>{ <span class="ruby-node">&quot;pid &lt;#{ @pid }&gt;&quot;</span> }
594
+ 63: <span class="ruby-identifier">info</span>{ <span class="ruby-node">&quot;pidfile &lt;#{ @pidfile.path }&gt;&quot;</span> }
595
+ 64: <span class="ruby-identifier">info</span>{ <span class="ruby-node">&quot;here &lt;#{ @here.path }&gt;&quot;</span> }
596
+ 65: <span class="ruby-identifier">info</span>{ <span class="ruby-node">&quot;there &lt;#{ @there.path }&gt;&quot;</span> }
597
+ 66:
598
+ 67: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;mode &lt;#{ @mode }&gt;&quot;</span> }
599
+ 68: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;min_sleep &lt;#{ @min_sleep }&gt;&quot;</span> }
600
+ 69: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;max_sleep &lt;#{ @max_sleep }&gt;&quot;</span> }
601
+ 70: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;relay &lt;#{ @relay }&gt;&quot;</span> }
602
+ 71:
603
+ 72: <span class="ruby-identifier">exit</span>
604
+ 73:
605
+ 74: <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
606
+ 75: <span class="ruby-identifier">handle_signal</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$rq_signaled</span>
607
+ 76: <span class="ruby-identifier">throttle</span>(<span class="ruby-ivar">@min_sleep</span>) <span class="ruby-keyword kw">do</span>
608
+ 77: <span class="ruby-identifier">reap_and_sow</span>
609
+ 78: <span class="ruby-identifier">relax</span>
610
+ 79: <span class="ruby-keyword kw">end</span>
611
+ 80: <span class="ruby-keyword kw">end</span>
612
+ 81: =begin
613
+ 82: loop do
614
+ 83: handle_signal if $rq_signaled
615
+ 84: throttle(@min_sleep) do
616
+ 85: start_jobs unless busy?
617
+ 86: if nothing_running?
618
+ 87: relax
619
+ 88: else
620
+ 89: reap_jobs
621
+ 90: end
622
+ 91: end
623
+ 92: end
624
+ 93: =end
625
+ 94:
626
+ 95: <span class="ruby-keyword kw">end</span>
627
+ 96: <span class="ruby-comment cmt">#--}}}</span>
628
+ 97: <span class="ruby-keyword kw">end</span>
629
+ </pre>
630
+ </div>
631
+ </div>
632
+ </div>
633
+
634
+ <div id="method-M000123" class="method-detail">
635
+ <a name="M000123"></a>
636
+
637
+ <div class="method-heading">
638
+ <a href="#M000123" class="method-signature">
639
+ <span class="method-name">throttle</span><span class="method-args">rate = @min_sleep</span>
640
+ </a>
641
+ </div>
642
+
643
+ <div class="method-description">
644
+ <p><a class="source-toggle" href="#"
645
+ onclick="toggleCode('M000123-source');return false;">[Source]</a></p>
646
+ <div class="method-source-code" id="M000123-source">
647
+ <pre>
648
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 203</span>
649
+ 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">throttle</span> <span class="ruby-identifier">rate</span> = <span class="ruby-ivar">@min_sleep</span>
650
+ 204: <span class="ruby-comment cmt">#--{{{</span>
651
+ 205: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Numeric</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">rate</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">rate</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
652
+ 206: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-ivar">@last_throttle_time</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@last_throttle_time</span>
653
+ 207: <span class="ruby-identifier">elapsed</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@last_throttle_time</span>
654
+ 208: <span class="ruby-identifier">timeout</span> = <span class="ruby-identifier">rate</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">elapsed</span>
655
+ 209: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">timeout</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
656
+ 210: <span class="ruby-identifier">timeout</span> = <span class="ruby-identifier">timeout</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rand</span>(<span class="ruby-identifier">rate</span> <span class="ruby-operator">*</span> <span class="ruby-value">0</span><span class="ruby-value">.10</span>)
657
+ 211: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;throttle rate of &lt;#{ rate }&gt; exceeded - sleeping &lt;#{ timeout }&gt;&quot;</span> }
658
+ 212: <span class="ruby-identifier">sleep</span> <span class="ruby-identifier">timeout</span>
659
+ 213: <span class="ruby-keyword kw">end</span>
660
+ 214: <span class="ruby-keyword kw">end</span>
661
+ 215: <span class="ruby-ivar">@last_throttle_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
662
+ 216: <span class="ruby-keyword kw">end</span>
663
+ 217: <span class="ruby-keyword kw">yield</span>
664
+ 218: <span class="ruby-comment cmt">#--}}}</span>
665
+ 219: <span class="ruby-keyword kw">end</span>
666
+ </pre>
667
+ </div>
668
+ </div>
669
+ </div>
670
+
671
+ <div id="method-M000124" class="method-detail">
672
+ <a name="M000124"></a>
673
+
674
+ <div class="method-heading">
675
+ <a href="#M000124" class="method-signature">
676
+ <span class="method-name">transaction</span><span class="method-args">() {|| ...}</span>
677
+ </a>
678
+ </div>
679
+
680
+ <div class="method-description">
681
+ <p><a class="source-toggle" href="#"
682
+ onclick="toggleCode('M000124-source');return false;">[Source]</a></p>
683
+ <div class="method-source-code" id="M000124-source">
684
+ <pre>
685
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/relayer.rb, line 220</span>
686
+ 220: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">transaction</span>
687
+ 221: <span class="ruby-comment cmt">#--{{{</span>
688
+ 222: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
689
+ 223: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in_transaction</span>
690
+ 224: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
691
+ 225: <span class="ruby-keyword kw">else</span>
692
+ 226: <span class="ruby-keyword kw">begin</span>
693
+ 227: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">true</span>
694
+ 228: <span class="ruby-ivar">@here</span>.<span class="ruby-identifier">transaction</span> <span class="ruby-keyword kw">do</span>
695
+ 229: <span class="ruby-ivar">@there</span>.<span class="ruby-identifier">transaction</span> <span class="ruby-keyword kw">do</span>
696
+ 230: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
697
+ 231: <span class="ruby-keyword kw">end</span>
698
+ 232: <span class="ruby-keyword kw">end</span>
699
+ 233: <span class="ruby-keyword kw">ensure</span>
700
+ 234: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">false</span>
701
+ 235: <span class="ruby-keyword kw">end</span>
702
+ 236: <span class="ruby-keyword kw">end</span>
703
+ 237: <span class="ruby-identifier">ret</span>
704
+ 238: <span class="ruby-comment cmt">#--}}}</span>
705
+ 239: <span class="ruby-keyword kw">end</span>
706
+ </pre>
707
+ </div>
708
+ </div>
709
+ </div>
710
+
711
+
712
+ </div>
713
+
714
+
715
+ </div>
716
+
717
+
718
+ <div id="validator-badges">
719
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
720
+ </div>
721
+
722
+ </body>
723
+ </html>