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,33 @@
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::MainHelper)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>new (RQ::MainHelper)</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/mainhelper.rb, line 26</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">main</span>
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-ivar">@main</span> = <span class="ruby-identifier">main</span>
22
+ <span class="ruby-ivar">@logger</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">logger</span>
23
+ <span class="ruby-ivar">@argv</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">argv</span>
24
+ <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">env</span>
25
+ <span class="ruby-ivar">@cmd</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">cmd</span>
26
+ <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">options</span>
27
+ <span class="ruby-ivar">@qpath</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">qpath</span>
28
+ <span class="ruby-ivar">@mode</span> = <span class="ruby-identifier">main</span>.<span class="ruby-identifier">mode</span>
29
+ <span class="ruby-ivar">@q</span> = <span class="ruby-keyword kw">nil</span>
30
+ <span class="ruby-comment cmt">#--}}}</span>
31
+ <span class="ruby-keyword kw">end</span></pre>
32
+ </body>
33
+ </html>
@@ -0,0 +1,32 @@
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
+ set_q (RQ::MainHelper)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>set_q (RQ::MainHelper)</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/mainhelper.rb, line 39</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_q</span>
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;q &lt;#{ @qpath }&gt; does not exist&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">test</span> <span class="ruby-operator">?</span><span class="ruby-identifier">d</span>, <span class="ruby-ivar">@qpath</span>
22
+ <span class="ruby-ivar">@q</span> = <span class="ruby-constant">JobQueue</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-ivar">@qpath</span>, <span class="ruby-value str">'logger'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@logger</span>
23
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-value str">'snapshot'</span>]
24
+ <span class="ruby-identifier">ss</span> = <span class="ruby-node">&quot;#{ $0 }_#{ Process::pid }_#{ Thread::current.id.abs }_#{ rand Time::now.to_i }&quot;</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">%|/|o</span>,<span class="ruby-value str">'_'</span>)
25
+ <span class="ruby-identifier">qtmp</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span> <span class="ruby-constant">Dir</span><span class="ruby-operator">::</span><span class="ruby-identifier">tmpdir</span>, <span class="ruby-identifier">ss</span>
26
+ <span class="ruby-ivar">@q</span> = <span class="ruby-ivar">@q</span>.<span class="ruby-identifier">snapshot</span> <span class="ruby-identifier">qtmp</span>, <span class="ruby-ivar">@options</span>[<span class="ruby-value str">'retries'</span>]
27
+ <span class="ruby-identifier">at_exit</span>{ <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_rf</span> <span class="ruby-identifier">qtmp</span> }
28
+ <span class="ruby-keyword kw">end</span>
29
+ <span class="ruby-comment cmt">#--}}}</span>
30
+ <span class="ruby-keyword kw">end</span></pre>
31
+ </body>
32
+ </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
+ loadio (RQ::MainHelper)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>loadio (RQ::MainHelper)</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/mainhelper.rb, line 51</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loadio</span> <span class="ruby-identifier">io</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">jobs</span>
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-keyword kw">while</span>((<span class="ruby-identifier">line</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">gets</span>))
22
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">%/^---\s*$/o</span>
23
+ <span class="ruby-identifier">loaded</span> = <span class="ruby-constant">YAML</span><span class="ruby-operator">::</span><span class="ruby-identifier">load</span> <span class="ruby-identifier">io</span>
24
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;no jobs in &lt;#{ path }&gt;&quot;</span> <span class="ruby-keyword kw">unless</span>
25
+ <span class="ruby-constant">Array</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">loaded</span> <span class="ruby-keyword kw">and</span>
26
+ <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">loaded</span>.<span class="ruby-identifier">first</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">loaded</span>.<span class="ruby-identifier">last</span>
27
+ <span class="ruby-identifier">loaded</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">job</span><span class="ruby-operator">|</span> <span class="ruby-identifier">jobs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">job</span>}
28
+ <span class="ruby-identifier">loaded</span> = <span class="ruby-keyword kw">nil</span>
29
+ <span class="ruby-keyword kw">else</span>
30
+ <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">%/(?:^\s+)|(?:\s+$)|(?:#.*$)/o</span>, <span class="ruby-value str">''</span>)
31
+ <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">empty?</span>
32
+ <span class="ruby-identifier">job</span> = <span class="ruby-constant">Job</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>
33
+ <span class="ruby-keyword kw">if</span>((<span class="ruby-identifier">m</span> = <span class="ruby-regexp re">%/^\s*(?:jid\s*=\s*)?(\d+)\s*$/i</span><span class="ruby-identifier">o</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>)))
34
+ <span class="ruby-identifier">job</span>[<span class="ruby-value str">'jid'</span>] = <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">m</span>[<span class="ruby-value">1</span>])
35
+ <span class="ruby-keyword kw">else</span>
36
+ <span class="ruby-identifier">job</span>[<span class="ruby-value str">'command'</span>] = <span class="ruby-identifier">line</span>
37
+ <span class="ruby-keyword kw">end</span>
38
+ <span class="ruby-identifier">jobs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">job</span>
39
+ <span class="ruby-keyword kw">end</span>
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,258 @@
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::OrderedAutoHash</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::OrderedAutoHash <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/orderedautohash_rb.html">
56
+ lib/rq-3.0.0/orderedautohash.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
+ ::OrderedHash
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
+ end
164
+ </p>
165
+
166
+ </div>
167
+
168
+
169
+ <div id="method-list">
170
+ <h2 class="section-bar">Methods</h2>
171
+
172
+ <div class="name-list">
173
+ <a href="#M000297">class</a>&nbsp;&nbsp;
174
+ <a href="#M000296">new</a>&nbsp;&nbsp;
175
+ </div>
176
+ </div>
177
+
178
+
179
+
180
+
181
+
182
+
183
+ </div>
184
+
185
+
186
+
187
+ <!-- if includes -->
188
+
189
+
190
+ <!-- if method_list -->
191
+ <div id="methods">
192
+ <h2 class="section-bar">Public Class methods</h2>
193
+
194
+ <div id="method-M000296" class="method-detail">
195
+ <a name="M000296"></a>
196
+
197
+ <div class="method-heading">
198
+ <a href="#M000296" class="method-signature">
199
+ <span class="method-name">new</span><span class="method-args">(*args)</span>
200
+ </a>
201
+ </div>
202
+
203
+ <div class="method-description">
204
+ <p><a class="source-toggle" href="#"
205
+ onclick="toggleCode('M000296-source');return false;">[Source]</a></p>
206
+ <div class="method-source-code" id="M000296-source">
207
+ <pre>
208
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/orderedautohash.rb, line 24</span>
209
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
210
+ 25: <span class="ruby-comment cmt">#--{{{</span>
211
+ 26: <span class="ruby-keyword kw">super</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-constant">OrderedAutoHash</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)}
212
+ 27: <span class="ruby-comment cmt">#--}}}</span>
213
+ 28: <span class="ruby-keyword kw">end</span>
214
+ </pre>
215
+ </div>
216
+ </div>
217
+ </div>
218
+
219
+ <h2 class="section-bar">Public Instance methods</h2>
220
+
221
+ <div id="method-M000297" class="method-detail">
222
+ <a name="M000297"></a>
223
+
224
+ <div class="method-heading">
225
+ <a href="#M000297" class="method-signature">
226
+ <span class="method-name">class</span><span class="method-args">()</span>
227
+ </a>
228
+ </div>
229
+
230
+ <div class="method-description">
231
+ <p><a class="source-toggle" href="#"
232
+ onclick="toggleCode('M000297-source');return false;">[Source]</a></p>
233
+ <div class="method-source-code" id="M000297-source">
234
+ <pre>
235
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/orderedautohash.rb, line 29</span>
236
+ 29: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">class</span>
237
+ 30: <span class="ruby-comment cmt">#--{{{</span>
238
+ 31: <span class="ruby-operator">::</span><span class="ruby-constant">Hash</span>
239
+ 32: <span class="ruby-comment cmt">#--}}}</span>
240
+ 33: <span class="ruby-keyword kw">end</span>
241
+ </pre>
242
+ </div>
243
+ </div>
244
+ </div>
245
+
246
+
247
+ </div>
248
+
249
+
250
+ </div>
251
+
252
+
253
+ <div id="validator-badges">
254
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
255
+ </div>
256
+
257
+ </body>
258
+ </html>
@@ -0,0 +1,25 @@
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::OrderedAutoHash)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>new (RQ::OrderedAutoHash)</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/orderedautohash.rb, line 24</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-keyword kw">super</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-constant">OrderedAutoHash</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)}
22
+ <span class="ruby-comment cmt">#--}}}</span>
23
+ <span class="ruby-keyword kw">end</span></pre>
24
+ </body>
25
+ </html>
@@ -0,0 +1,25 @@
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
+ class (RQ::OrderedAutoHash)
9
+
10
+ -->
11
+ <html>
12
+ <head>
13
+ <title>class (RQ::OrderedAutoHash)</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/orderedautohash.rb, line 29</span>
19
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">class</span>
20
+ <span class="ruby-comment cmt">#--{{{</span>
21
+ <span class="ruby-operator">::</span><span class="ruby-constant">Hash</span>
22
+ <span class="ruby-comment cmt">#--}}}</span>
23
+ <span class="ruby-keyword kw">end</span></pre>
24
+ </body>
25
+ </html>
@@ -0,0 +1,1653 @@
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::QDB</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::QDB <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/qdb_rb.html">
56
+ lib/rq-3.0.0/qdb.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 <a href="QDB.html">QDB</a> class is the low level access point to the
164
+ actual sqlite database. the primary function if performs is to serialize
165
+ access to the queue db via the locking protocol
166
+ </p>
167
+
168
+ </div>
169
+
170
+
171
+ <div id="method-list">
172
+ <h2 class="section-bar">Methods</h2>
173
+
174
+ <div class="name-list">
175
+ <a href="#M000213">abort_transaction</a>&nbsp;&nbsp;
176
+ <a href="#M000216">aquire_lock</a>&nbsp;&nbsp;
177
+ <a href="#M000217">connect</a>&nbsp;&nbsp;
178
+ <a href="#M000204">create</a>&nbsp;&nbsp;
179
+ <a href="#M000205">create_schema</a>&nbsp;&nbsp;
180
+ <a href="#M000218">execute</a>&nbsp;&nbsp;
181
+ <a href="#M000198">fields</a>&nbsp;&nbsp;
182
+ <a href="#M000201">h2t</a>&nbsp;&nbsp;
183
+ <a href="#M000199">integrity_check</a>&nbsp;&nbsp;
184
+ <a href="#M000223">integrity_check</a>&nbsp;&nbsp;
185
+ <a href="#M000224">lock</a>&nbsp;&nbsp;
186
+ <a href="#M000222">lockd_recover</a>&nbsp;&nbsp;
187
+ <a href="#M000211">lockd_recover_wrap</a>&nbsp;&nbsp;
188
+ <a href="#M000206">new</a>&nbsp;&nbsp;
189
+ <a href="#M000203">q</a>&nbsp;&nbsp;
190
+ <a href="#M000227">read_lock</a>&nbsp;&nbsp;
191
+ <a href="#M000221">recover!</a>&nbsp;&nbsp;
192
+ <a href="#M000219">retry_if_locked</a>&nbsp;&nbsp;
193
+ <a href="#M000228">rlock</a>&nbsp;&nbsp;
194
+ <a href="#M000209">ro_transaction</a>&nbsp;&nbsp;
195
+ <a href="#M000207">ro_transaction</a>&nbsp;&nbsp;
196
+ <a href="#M000214">rollback_transaction</a>&nbsp;&nbsp;
197
+ <a href="#M000215">sillyclean</a>&nbsp;&nbsp;
198
+ <a href="#M000200">t2h</a>&nbsp;&nbsp;
199
+ <a href="#M000208">transaction</a>&nbsp;&nbsp;
200
+ <a href="#M000210">transaction</a>&nbsp;&nbsp;
201
+ <a href="#M000212">transaction_wrap</a>&nbsp;&nbsp;
202
+ <a href="#M000202">tuple</a>&nbsp;&nbsp;
203
+ <a href="#M000220">vacuum</a>&nbsp;&nbsp;
204
+ <a href="#M000226">wlock</a>&nbsp;&nbsp;
205
+ <a href="#M000225">write_lock</a>&nbsp;&nbsp;
206
+ </div>
207
+ </div>
208
+
209
+ <div id="constants-list">
210
+ <h2 class="section-bar">Constants</h2>
211
+
212
+ <div class="name-list">
213
+ <table summary="Constants">
214
+ <tr class="top-aligned-row context-row">
215
+ <td class="context-item-name">FIELDS</td>
216
+ <td>=</td>
217
+ <td class="context-item-value">#--{{{ %w( jid priority state submitted started finished elapsed submitter runner stdin stdout stderr pid exit_status tag restartable command )</td>
218
+ </tr>
219
+ <tr class="top-aligned-row context-row">
220
+ <td class="context-item-name">PRAGMAS</td>
221
+ <td>=</td>
222
+ <td class="context-item-value">#--{{{ <<-sql PRAGMA default_synchronous = FULL; sql</td>
223
+ </tr>
224
+ <tr class="top-aligned-row context-row">
225
+ <td class="context-item-name">SCHEMA</td>
226
+ <td>=</td>
227
+ <td class="context-item-value">#--{{{ <<-sql create table jobs ( jid integer primary key, #{ FIELDS[1..-1].join ",\n " } ); create table attributes ( key, value, primary key (key) ); sql</td>
228
+ </tr>
229
+ <tr class="top-aligned-row context-row">
230
+ <td class="context-item-name">DEFAULT_LOGGER</td>
231
+ <td>=</td>
232
+ <td class="context-item-value">Logger::new(STDERR)</td>
233
+ </tr>
234
+ <tr class="top-aligned-row context-row">
235
+ <td class="context-item-name">DEFAULT_SQL_DEBUG</td>
236
+ <td>=</td>
237
+ <td class="context-item-value">false</td>
238
+ </tr>
239
+ <tr class="top-aligned-row context-row">
240
+ <td class="context-item-name">DEFAULT_TRANSACTION_RETRIES</td>
241
+ <td>=</td>
242
+ <td class="context-item-value">4</td>
243
+ </tr>
244
+ <tr class="top-aligned-row context-row">
245
+ <td class="context-item-name">DEFAULT_AQUIRE_LOCK_SC</td>
246
+ <td>=</td>
247
+ <td class="context-item-value">SleepCycle::new(2, 16, 2)</td>
248
+ </tr>
249
+ <tr class="top-aligned-row context-row">
250
+ <td class="context-item-name">DEFAULT_TRANSACTION_RETRIES_SC</td>
251
+ <td>=</td>
252
+ <td class="context-item-value">SleepCycle::new(8, 24, 8)</td>
253
+ </tr>
254
+ <tr class="top-aligned-row context-row">
255
+ <td class="context-item-name">DEFAULT_ATTEMPT_LOCKD_RECOVERY</td>
256
+ <td>=</td>
257
+ <td class="context-item-value">true</td>
258
+ </tr>
259
+ <tr class="top-aligned-row context-row">
260
+ <td class="context-item-name">DEFAULT_LOCKD_RECOVER_WAIT</td>
261
+ <td>=</td>
262
+ <td class="context-item-value">3600</td>
263
+ </tr>
264
+ <tr class="top-aligned-row context-row">
265
+ <td class="context-item-name">DEFAULT_AQUIRE_LOCK_LOCKFILE_STALE_AGE</td>
266
+ <td>=</td>
267
+ <td class="context-item-value">21600</td>
268
+ </tr>
269
+ <tr class="top-aligned-row context-row">
270
+ <td class="context-item-name">DEFAULT_AQUIRE_LOCK_REFRESH_RATE</td>
271
+ <td>=</td>
272
+ <td class="context-item-value">30</td>
273
+ </tr>
274
+ </table>
275
+ </div>
276
+ </div>
277
+
278
+
279
+
280
+ <div id="attribute-list">
281
+ <h2 class="section-bar">Attributes</h2>
282
+
283
+ <div class="name-list">
284
+ <table>
285
+ <tr class="top-aligned-row context-row">
286
+ <td class="context-item-name">aquire_lock_lockfile_stale_age</td>
287
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
288
+ <td class="context-item-desc"></td>
289
+ </tr>
290
+ <tr class="top-aligned-row context-row">
291
+ <td class="context-item-name">aquire_lock_lockfile_stale_age</td>
292
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
293
+ <td class="context-item-desc"></td>
294
+ </tr>
295
+ <tr class="top-aligned-row context-row">
296
+ <td class="context-item-name">aquire_lock_refresh_rate</td>
297
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
298
+ <td class="context-item-desc"></td>
299
+ </tr>
300
+ <tr class="top-aligned-row context-row">
301
+ <td class="context-item-name">aquire_lock_refresh_rate</td>
302
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
303
+ <td class="context-item-desc"></td>
304
+ </tr>
305
+ <tr class="top-aligned-row context-row">
306
+ <td class="context-item-name">aquire_lock_sc</td>
307
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
308
+ <td class="context-item-desc"></td>
309
+ </tr>
310
+ <tr class="top-aligned-row context-row">
311
+ <td class="context-item-name">aquire_lock_sc</td>
312
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
313
+ <td class="context-item-desc"></td>
314
+ </tr>
315
+ <tr class="top-aligned-row context-row">
316
+ <td class="context-item-name">attempt_lockd_recovery</td>
317
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
318
+ <td class="context-item-desc"></td>
319
+ </tr>
320
+ <tr class="top-aligned-row context-row">
321
+ <td class="context-item-name">attempt_lockd_recovery</td>
322
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
323
+ <td class="context-item-desc"></td>
324
+ </tr>
325
+ <tr class="top-aligned-row context-row">
326
+ <td class="context-item-name">dirname</td>
327
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
328
+ <td class="context-item-desc"></td>
329
+ </tr>
330
+ <tr class="top-aligned-row context-row">
331
+ <td class="context-item-name">fields</td>
332
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
333
+ <td class="context-item-desc"></td>
334
+ </tr>
335
+ <tr class="top-aligned-row context-row">
336
+ <td class="context-item-name">lockd_recover_wait</td>
337
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
338
+ <td class="context-item-desc"></td>
339
+ </tr>
340
+ <tr class="top-aligned-row context-row">
341
+ <td class="context-item-name">lockd_recover_wait</td>
342
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
343
+ <td class="context-item-desc"></td>
344
+ </tr>
345
+ <tr class="top-aligned-row context-row">
346
+ <td class="context-item-name">lockfile</td>
347
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
348
+ <td class="context-item-desc"></td>
349
+ </tr>
350
+ <tr class="top-aligned-row context-row">
351
+ <td class="context-item-name">mutex</td>
352
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
353
+ <td class="context-item-desc"></td>
354
+ </tr>
355
+ <tr class="top-aligned-row context-row">
356
+ <td class="context-item-name">opts</td>
357
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
358
+ <td class="context-item-desc"></td>
359
+ </tr>
360
+ <tr class="top-aligned-row context-row">
361
+ <td class="context-item-name">path</td>
362
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
363
+ <td class="context-item-desc"></td>
364
+ </tr>
365
+ <tr class="top-aligned-row context-row">
366
+ <td class="context-item-name">schema</td>
367
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
368
+ <td class="context-item-desc"></td>
369
+ </tr>
370
+ <tr class="top-aligned-row context-row">
371
+ <td class="context-item-name">sql_debug</td>
372
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
373
+ <td class="context-item-desc"></td>
374
+ </tr>
375
+ <tr class="top-aligned-row context-row">
376
+ <td class="context-item-name">sql_debug</td>
377
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
378
+ <td class="context-item-desc"></td>
379
+ </tr>
380
+ <tr class="top-aligned-row context-row">
381
+ <td class="context-item-name">transaction_retries</td>
382
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
383
+ <td class="context-item-desc"></td>
384
+ </tr>
385
+ <tr class="top-aligned-row context-row">
386
+ <td class="context-item-name">transaction_retries</td>
387
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
388
+ <td class="context-item-desc"></td>
389
+ </tr>
390
+ <tr class="top-aligned-row context-row">
391
+ <td class="context-item-name">transaction_retries_sc</td>
392
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
393
+ <td class="context-item-desc"></td>
394
+ </tr>
395
+ <tr class="top-aligned-row context-row">
396
+ <td class="context-item-name">transaction_retries_sc</td>
397
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
398
+ <td class="context-item-desc"></td>
399
+ </tr>
400
+ </table>
401
+ </div>
402
+ </div>
403
+
404
+ <div id="class-list">
405
+ <h2 class="section-bar">Classes and Modules</h2>
406
+
407
+ Class <a href="QDB/AbortedTransactionError.html" class="link">RQ::QDB::AbortedTransactionError</a><br />
408
+ Class <a href="QDB/RollbackTransactionError.html" class="link">RQ::QDB::RollbackTransactionError</a><br />
409
+
410
+ </div>
411
+
412
+ </div>
413
+
414
+
415
+
416
+ <!-- if includes -->
417
+ <div id="includes">
418
+ <h2 class="section-bar">Included Modules</h2>
419
+
420
+ <div id="includes-list">
421
+ <span class="include-name">Util</span>
422
+ <span class="include-name">Logging</span>
423
+ </div>
424
+ </div>
425
+
426
+
427
+ <!-- if method_list -->
428
+ <div id="methods">
429
+ <h2 class="section-bar">Public Class methods</h2>
430
+
431
+ <div id="method-M000204" class="method-detail">
432
+ <a name="M000204"></a>
433
+
434
+ <div class="method-heading">
435
+ <a href="#M000204" class="method-signature">
436
+ <span class="method-name">create</span><span class="method-args">path, opts = {}</span>
437
+ </a>
438
+ </div>
439
+
440
+ <div class="method-description">
441
+ <p><a class="source-toggle" href="#"
442
+ onclick="toggleCode('M000204-source');return false;">[Source]</a></p>
443
+ <div class="method-source-code" id="M000204-source">
444
+ <pre>
445
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 145</span>
446
+ 145: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">opts</span> = {}
447
+ 146: <span class="ruby-comment cmt">#--{{{</span>
448
+ 147: <span class="ruby-identifier">qdb</span> = <span class="ruby-identifier">new</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">opts</span>
449
+ 148: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">touch</span> <span class="ruby-identifier">qdb</span>.<span class="ruby-identifier">lockfile</span>
450
+ 149: <span class="ruby-identifier">create_schema</span> <span class="ruby-identifier">qdb</span>.<span class="ruby-identifier">schema</span>
451
+ 150: <span class="ruby-identifier">qdb</span>.<span class="ruby-identifier">transaction</span> <span class="ruby-keyword kw">do</span>
452
+ 151: <span class="ruby-identifier">qdb</span>.<span class="ruby-identifier">execute</span> <span class="ruby-constant">PRAGMAS</span>
453
+ 152: <span class="ruby-identifier">qdb</span>.<span class="ruby-identifier">execute</span> <span class="ruby-constant">SCHEMA</span>
454
+ 153: <span class="ruby-keyword kw">end</span>
455
+ 154: <span class="ruby-identifier">qdb</span>
456
+ 155: <span class="ruby-comment cmt">#--}}}</span>
457
+ 156: <span class="ruby-keyword kw">end</span>
458
+ </pre>
459
+ </div>
460
+ </div>
461
+ </div>
462
+
463
+ <div id="method-M000205" class="method-detail">
464
+ <a name="M000205"></a>
465
+
466
+ <div class="method-heading">
467
+ <a href="#M000205" class="method-signature">
468
+ <span class="method-name">create_schema</span><span class="method-args">path</span>
469
+ </a>
470
+ </div>
471
+
472
+ <div class="method-description">
473
+ <p><a class="source-toggle" href="#"
474
+ onclick="toggleCode('M000205-source');return false;">[Source]</a></p>
475
+ <div class="method-source-code" id="M000205-source">
476
+ <pre>
477
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 157</span>
478
+ 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_schema</span> <span class="ruby-identifier">path</span>
479
+ 158: <span class="ruby-comment cmt">#--{{{</span>
480
+ 159: <span class="ruby-identifier">tmp</span> = <span class="ruby-node">&quot;#{ path }.tmp&quot;</span>
481
+ 160: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">tmp</span>,<span class="ruby-value str">'w'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
482
+ 161: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">PRAGMAS</span>
483
+ 162: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">SCHEMA</span>
484
+ 163: <span class="ruby-keyword kw">end</span>
485
+ 164: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">mv</span> <span class="ruby-identifier">tmp</span>, <span class="ruby-identifier">path</span>
486
+ 165: <span class="ruby-comment cmt">#--}}}</span>
487
+ 166: <span class="ruby-keyword kw">end</span>
488
+ </pre>
489
+ </div>
490
+ </div>
491
+ </div>
492
+
493
+ <div id="method-M000198" class="method-detail">
494
+ <a name="M000198"></a>
495
+
496
+ <div class="method-heading">
497
+ <a href="#M000198" class="method-signature">
498
+ <span class="method-name">fields</span><span class="method-args">()</span>
499
+ </a>
500
+ </div>
501
+
502
+ <div class="method-description">
503
+ <p><a class="source-toggle" href="#"
504
+ onclick="toggleCode('M000198-source');return false;">[Source]</a></p>
505
+ <div class="method-source-code" id="M000198-source">
506
+ <pre>
507
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 86</span>
508
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fields</span>
509
+ 87: <span class="ruby-comment cmt">#--{{{</span>
510
+ 88: <span class="ruby-constant">FIELDS</span>
511
+ 89: <span class="ruby-comment cmt">#--}}}</span>
512
+ 90: <span class="ruby-keyword kw">end</span>
513
+ </pre>
514
+ </div>
515
+ </div>
516
+ </div>
517
+
518
+ <div id="method-M000201" class="method-detail">
519
+ <a name="M000201"></a>
520
+
521
+ <div class="method-heading">
522
+ <a href="#M000201" class="method-signature">
523
+ <span class="method-name">h2t</span><span class="method-args">h</span>
524
+ </a>
525
+ </div>
526
+
527
+ <div class="method-description">
528
+ <p><a class="source-toggle" href="#"
529
+ onclick="toggleCode('M000201-source');return false;">[Source]</a></p>
530
+ <div class="method-source-code" id="M000201-source">
531
+ <pre>
532
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 120</span>
533
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">h2t</span> <span class="ruby-identifier">h</span>
534
+ 121: <span class="ruby-comment cmt">#--{{{</span>
535
+ 122: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">tuple</span>
536
+ 123: <span class="ruby-constant">FIELDS</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">t</span>[<span class="ruby-identifier">f</span>] = <span class="ruby-identifier">h</span>[<span class="ruby-identifier">f</span>]}
537
+ 124: <span class="ruby-identifier">t</span>
538
+ 125: <span class="ruby-comment cmt">#--}}}</span>
539
+ 126: <span class="ruby-keyword kw">end</span>
540
+ </pre>
541
+ </div>
542
+ </div>
543
+ </div>
544
+
545
+ <div id="method-M000199" class="method-detail">
546
+ <a name="M000199"></a>
547
+
548
+ <div class="method-heading">
549
+ <a href="#M000199" class="method-signature">
550
+ <span class="method-name">integrity_check</span><span class="method-args">dbpath</span>
551
+ </a>
552
+ </div>
553
+
554
+ <div class="method-description">
555
+ <p><a class="source-toggle" href="#"
556
+ onclick="toggleCode('M000199-source');return false;">[Source]</a></p>
557
+ <div class="method-source-code" id="M000199-source">
558
+ <pre>
559
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 91</span>
560
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">integrity_check</span> <span class="ruby-identifier">dbpath</span>
561
+ 92: <span class="ruby-comment cmt">#--{{{</span>
562
+ 93: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">false</span>
563
+ 94: <span class="ruby-identifier">tuple</span> = <span class="ruby-keyword kw">nil</span>
564
+ 95: <span class="ruby-keyword kw">begin</span>
565
+ 96: <span class="ruby-identifier">db</span> =
566
+ 97: <span class="ruby-keyword kw">begin</span>
567
+ 98: <span class="ruby-constant">SQLite</span><span class="ruby-operator">::</span><span class="ruby-constant">Database</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-identifier">dbpath</span>, <span class="ruby-value">0</span>
568
+ 99: <span class="ruby-keyword kw">rescue</span>
569
+ 100: <span class="ruby-constant">SQLite</span><span class="ruby-operator">::</span><span class="ruby-constant">Database</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-identifier">dbpath</span>
570
+ 101: <span class="ruby-keyword kw">end</span>
571
+ 102: <span class="ruby-identifier">opened</span> = <span class="ruby-keyword kw">true</span>
572
+ 103: <span class="ruby-identifier">db</span>.<span class="ruby-identifier">use_array</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
573
+ 104: <span class="ruby-identifier">tuple</span> = <span class="ruby-identifier">db</span>.<span class="ruby-identifier">execute</span> <span class="ruby-value str">'PRAGMA integrity_check;'</span>
574
+ 105: <span class="ruby-identifier">ret</span> = (<span class="ruby-identifier">tuple</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">tuple</span>.<span class="ruby-identifier">first</span> <span class="ruby-keyword kw">and</span> (<span class="ruby-identifier">tuple</span>.<span class="ruby-identifier">first</span>[<span class="ruby-value str">&quot;integrity_check&quot;</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s*ok\s*$/i</span><span class="ruby-identifier">o</span>))
575
+ 106: <span class="ruby-keyword kw">ensure</span>
576
+ 107: <span class="ruby-identifier">db</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opened</span>
577
+ 108: <span class="ruby-identifier">db</span> = <span class="ruby-keyword kw">nil</span>
578
+ 109: <span class="ruby-keyword kw">end</span>
579
+ 110: <span class="ruby-identifier">ret</span>
580
+ 111: <span class="ruby-comment cmt">#--}}}</span>
581
+ 112: <span class="ruby-keyword kw">end</span>
582
+ </pre>
583
+ </div>
584
+ </div>
585
+ </div>
586
+
587
+ <div id="method-M000206" class="method-detail">
588
+ <a name="M000206"></a>
589
+
590
+ <div class="method-heading">
591
+ <a href="#M000206" class="method-signature">
592
+ <span class="method-name">new</span><span class="method-args">path, opts = {}</span>
593
+ </a>
594
+ </div>
595
+
596
+ <div class="method-description">
597
+ <p><a class="source-toggle" href="#"
598
+ onclick="toggleCode('M000206-source');return false;">[Source]</a></p>
599
+ <div class="method-source-code" id="M000206-source">
600
+ <pre>
601
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 187</span>
602
+ 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">opts</span> = {}
603
+ 188: <span class="ruby-comment cmt">#--{{{</span>
604
+ 189: <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">path</span>
605
+ 190: <span class="ruby-ivar">@opts</span> = <span class="ruby-identifier">opts</span>
606
+ 191:
607
+ 192: <span class="ruby-ivar">@logger</span> =
608
+ 193: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'logger'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
609
+ 194: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">logger</span> <span class="ruby-operator">||</span>
610
+ 195: <span class="ruby-constant">DEFAULT_LOGGER</span>
611
+ 196:
612
+ 197: <span class="ruby-ivar">@sql_debug</span> =
613
+ 198: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'sql_debug'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
614
+ 199: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">sql_debug</span> <span class="ruby-operator">||</span>
615
+ 200: <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'RQ_SQL_DEBUG'</span>] <span class="ruby-operator">||</span>
616
+ 201: <span class="ruby-constant">DEFAULT_SQL_DEBUG</span>
617
+ 202:
618
+ 203: <span class="ruby-ivar">@transaction_retries</span> =
619
+ 204: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'transaction_retries'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
620
+ 205: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">transaction_retries</span> <span class="ruby-operator">||</span>
621
+ 206: <span class="ruby-constant">DEFAULT_TRANSACTION_RETRIES</span>
622
+ 207:
623
+ 208: <span class="ruby-ivar">@aquire_lock_sc</span> =
624
+ 209: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'aquire_lock_sc'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
625
+ 210: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">aquire_lock_sc</span> <span class="ruby-operator">||</span>
626
+ 211: <span class="ruby-constant">DEFAULT_AQUIRE_LOCK_SC</span>
627
+ 212:
628
+ 213: <span class="ruby-ivar">@transaction_retries_sc</span> =
629
+ 214: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'transaction_retries_sc'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
630
+ 215: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">transaction_retries_sc</span> <span class="ruby-operator">||</span>
631
+ 216: <span class="ruby-constant">DEFAULT_TRANSACTION_RETRIES_SC</span>
632
+ 217:
633
+ 218: <span class="ruby-ivar">@attempt_lockd_recovery</span> =
634
+ 219: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'attempt_lockd_recovery'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
635
+ 220: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">attempt_lockd_recovery</span> <span class="ruby-operator">||</span>
636
+ 221: <span class="ruby-constant">DEFAULT_ATTEMPT_LOCKD_RECOVERY</span>
637
+ 222:
638
+ 223: <span class="ruby-ivar">@lockd_recover_wait</span> =
639
+ 224: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'lockd_recover_wait'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
640
+ 225: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">lockd_recover_wait</span> <span class="ruby-operator">||</span>
641
+ 226: <span class="ruby-constant">DEFAULT_LOCKD_RECOVER_WAIT</span>
642
+ 227:
643
+ 228: <span class="ruby-ivar">@aquire_lock_lockfile_stale_age</span> =
644
+ 229: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'aquire_lock_lockfile_stale_age'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
645
+ 230: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">aquire_lock_lockfile_stale_age</span> <span class="ruby-operator">||</span>
646
+ 231: <span class="ruby-constant">DEFAULT_AQUIRE_LOCK_LOCKFILE_STALE_AGE</span>
647
+ 232:
648
+ 233: <span class="ruby-ivar">@aquire_lock_refresh_rate</span> =
649
+ 234: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span>(<span class="ruby-value str">'aquire_lock_refresh_rate'</span>, <span class="ruby-ivar">@opts</span>) <span class="ruby-operator">||</span>
650
+ 235: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">aquire_lock_refresh_rate</span> <span class="ruby-operator">||</span>
651
+ 236: <span class="ruby-constant">DEFAULT_AQUIRE_LOCK_REFRESH_RATE</span>
652
+ 237:
653
+ 238:
654
+ 239: <span class="ruby-ivar">@schema</span> = <span class="ruby-node">&quot;#{ @path }.schema&quot;</span>
655
+ 240: <span class="ruby-ivar">@dirname</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">%|/+\s*$|</span>,<span class="ruby-value str">''</span>)
656
+ 241: <span class="ruby-ivar">@basename</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">basename</span>(<span class="ruby-identifier">path</span>)
657
+ 242: <span class="ruby-ivar">@waiting_w</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dirname</span>, <span class="ruby-node">&quot;#{ Util::hostname }.#{ $$ }.waiting.w&quot;</span>)
658
+ 243: <span class="ruby-ivar">@waiting_r</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dirname</span>, <span class="ruby-node">&quot;#{ Util::hostname }.#{ $$ }.waiting.r&quot;</span>)
659
+ 244: <span class="ruby-ivar">@lock_w</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dirname</span>, <span class="ruby-node">&quot;#{ Util::hostname }.#{ $$ }.lock.w&quot;</span>)
660
+ 245: <span class="ruby-ivar">@lock_r</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dirname</span>, <span class="ruby-node">&quot;#{ Util::hostname }.#{ $$ }.lock.r&quot;</span>)
661
+ 246: <span class="ruby-ivar">@lockfile</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-ivar">@dirname</span>, <span class="ruby-value str">'lock'</span>)
662
+ 247: <span class="ruby-ivar">@lockf</span> = <span class="ruby-constant">Lockfile</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;#{ @path }.lock&quot;</span>)
663
+ 248: <span class="ruby-ivar">@fields</span> = <span class="ruby-constant">FIELDS</span>
664
+ 249: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">false</span>
665
+ 250: <span class="ruby-ivar">@in_ro_transaction</span> = <span class="ruby-keyword kw">false</span>
666
+ 251: <span class="ruby-ivar">@db</span> = <span class="ruby-keyword kw">nil</span>
667
+ 252:
668
+ 253: <span class="ruby-ivar">@lockd_recover</span> = <span class="ruby-node">&quot;#{ @dirname }.lockd_recover&quot;</span>
669
+ 254: <span class="ruby-ivar">@lockd_recover_lockf</span> = <span class="ruby-constant">Lockfile</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-node">&quot;#{ @lockd_recover }.lock&quot;</span>
670
+ 255: <span class="ruby-ivar">@lockd_recovered</span> = <span class="ruby-keyword kw">false</span>
671
+ 256: <span class="ruby-comment cmt">#--}}}</span>
672
+ 257: <span class="ruby-keyword kw">end</span>
673
+ </pre>
674
+ </div>
675
+ </div>
676
+ </div>
677
+
678
+ <div id="method-M000203" class="method-detail">
679
+ <a name="M000203"></a>
680
+
681
+ <div class="method-heading">
682
+ <a href="#M000203" class="method-signature">
683
+ <span class="method-name">q</span><span class="method-args">tuple</span>
684
+ </a>
685
+ </div>
686
+
687
+ <div class="method-description">
688
+ <p><a class="source-toggle" href="#"
689
+ onclick="toggleCode('M000203-source');return false;">[Source]</a></p>
690
+ <div class="method-source-code" id="M000203-source">
691
+ <pre>
692
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 134</span>
693
+ 134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">q</span> <span class="ruby-identifier">tuple</span>
694
+ 135: <span class="ruby-comment cmt">#--{{{</span>
695
+ 136: [ <span class="ruby-identifier">tuple</span> ].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
696
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">empty?</span>
697
+ 138: <span class="ruby-value str">&quot;'&quot;</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">f</span>,<span class="ruby-value str">&quot;'&quot;</span>,<span class="ruby-value str">&quot;'&quot;</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;'&quot;</span>
698
+ 139: <span class="ruby-keyword kw">else</span>
699
+ 140: <span class="ruby-value str">'NULL'</span>
700
+ 141: <span class="ruby-keyword kw">end</span>
701
+ 142: <span class="ruby-keyword kw">end</span>
702
+ 143: <span class="ruby-comment cmt">#--}}}</span>
703
+ 144: <span class="ruby-keyword kw">end</span>
704
+ </pre>
705
+ </div>
706
+ </div>
707
+ </div>
708
+
709
+ <div id="method-M000200" class="method-detail">
710
+ <a name="M000200"></a>
711
+
712
+ <div class="method-heading">
713
+ <a href="#M000200" class="method-signature">
714
+ <span class="method-name">t2h</span><span class="method-args">tuple</span>
715
+ </a>
716
+ </div>
717
+
718
+ <div class="method-description">
719
+ <p><a class="source-toggle" href="#"
720
+ onclick="toggleCode('M000200-source');return false;">[Source]</a></p>
721
+ <div class="method-source-code" id="M000200-source">
722
+ <pre>
723
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 113</span>
724
+ 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">t2h</span> <span class="ruby-identifier">tuple</span>
725
+ 114: <span class="ruby-comment cmt">#--{{{</span>
726
+ 115: <span class="ruby-identifier">h</span> = {}
727
+ 116: <span class="ruby-constant">FIELDS</span>.<span class="ruby-identifier">each_with_index</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">f</span>,<span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">f</span>] = <span class="ruby-identifier">tuple</span>[<span class="ruby-identifier">i</span>]}
728
+ 117: <span class="ruby-identifier">h</span>
729
+ 118: <span class="ruby-comment cmt">#--}}}</span>
730
+ 119: <span class="ruby-keyword kw">end</span>
731
+ </pre>
732
+ </div>
733
+ </div>
734
+ </div>
735
+
736
+ <div id="method-M000202" class="method-detail">
737
+ <a name="M000202"></a>
738
+
739
+ <div class="method-heading">
740
+ <a href="#M000202" class="method-signature">
741
+ <span class="method-name">tuple</span><span class="method-args">()</span>
742
+ </a>
743
+ </div>
744
+
745
+ <div class="method-description">
746
+ <p><a class="source-toggle" href="#"
747
+ onclick="toggleCode('M000202-source');return false;">[Source]</a></p>
748
+ <div class="method-source-code" id="M000202-source">
749
+ <pre>
750
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 127</span>
751
+ 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tuple</span>
752
+ 128: <span class="ruby-comment cmt">#--{{{</span>
753
+ 129: <span class="ruby-identifier">t</span> = <span class="ruby-constant">Array</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-constant">FIELDS</span>.<span class="ruby-identifier">size</span>
754
+ 130: <span class="ruby-identifier">t</span>.<span class="ruby-identifier">fields</span> = <span class="ruby-constant">FIELDS</span>
755
+ 131: <span class="ruby-identifier">t</span>
756
+ 132: <span class="ruby-comment cmt">#--}}}</span>
757
+ 133: <span class="ruby-keyword kw">end</span>
758
+ </pre>
759
+ </div>
760
+ </div>
761
+ </div>
762
+
763
+ <h2 class="section-bar">Public Instance methods</h2>
764
+
765
+ <div id="method-M000213" class="method-detail">
766
+ <a name="M000213"></a>
767
+
768
+ <div class="method-heading">
769
+ <a href="#M000213" class="method-signature">
770
+ <span class="method-name">abort_transaction</span><span class="method-args">(*a)</span>
771
+ </a>
772
+ </div>
773
+
774
+ <div class="method-description">
775
+ <p><a class="source-toggle" href="#"
776
+ onclick="toggleCode('M000213-source');return false;">[Source]</a></p>
777
+ <div class="method-source-code" id="M000213-source">
778
+ <pre>
779
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 412</span>
780
+ 412: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort_transaction</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
781
+ 413: <span class="ruby-comment cmt">#--{{{</span>
782
+ 414: <span class="ruby-identifier">raise</span> <span class="ruby-constant">AbortedTransactionError</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>
783
+ 415: <span class="ruby-comment cmt">#--}}}</span>
784
+ 416: <span class="ruby-keyword kw">end</span>
785
+ </pre>
786
+ </div>
787
+ </div>
788
+ </div>
789
+
790
+ <div id="method-M000216" class="method-detail">
791
+ <a name="M000216"></a>
792
+
793
+ <div class="method-heading">
794
+ <a href="#M000216" class="method-signature">
795
+ <span class="method-name">aquire_lock</span><span class="method-args">opts = {}</span>
796
+ </a>
797
+ </div>
798
+
799
+ <div class="method-description">
800
+ <p><a class="source-toggle" href="#"
801
+ onclick="toggleCode('M000216-source');return false;">[Source]</a></p>
802
+ <div class="method-source-code" id="M000216-source">
803
+ <pre>
804
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 439</span>
805
+ 439: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">aquire_lock</span> <span class="ruby-identifier">opts</span> = {}
806
+ 440: <span class="ruby-comment cmt">#--{{{</span>
807
+ 441: <span class="ruby-identifier">ro</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span> <span class="ruby-value str">'read_only'</span>, <span class="ruby-identifier">opts</span>
808
+ 442: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
809
+ 443:
810
+ 444: <span class="ruby-ivar">@aquire_lock_sc</span>.<span class="ruby-identifier">reset</span>
811
+ 445:
812
+ 446: <span class="ruby-identifier">waiting</span>, <span class="ruby-identifier">ltype</span>, <span class="ruby-identifier">lfile</span> =
813
+ 447: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ro</span>
814
+ 448: [<span class="ruby-ivar">@waiting_r</span>, <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_SH</span> <span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_NB</span>, <span class="ruby-ivar">@lock_r</span>]
815
+ 449: <span class="ruby-keyword kw">else</span>
816
+ 450: [<span class="ruby-ivar">@waiting_w</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>, <span class="ruby-ivar">@lock_w</span>]
817
+ 451: <span class="ruby-keyword kw">end</span>
818
+ 452:
819
+ 453: <span class="ruby-identifier">ltype_s</span> = (<span class="ruby-identifier">ltype</span> <span class="ruby-operator">==</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_EX</span> <span class="ruby-value">? </span><span class="ruby-value str">'write'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'read'</span>)
820
+ 454: <span class="ruby-identifier">ltype</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_NB</span>
821
+ 455:
822
+ 456: <span class="ruby-identifier">aquired</span> = <span class="ruby-keyword kw">false</span>
823
+ 457:
824
+ 458: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">aquired</span>
825
+ 459: <span class="ruby-keyword kw">begin</span>
826
+ 460: <span class="ruby-identifier">debug</span>{ <span class="ruby-value str">&quot;aquiring lock&quot;</span> }
827
+ 461: <span class="ruby-comment cmt">#@lockf.lock unless ro</span>
828
+ 462:
829
+ 463: <span class="ruby-identifier">open</span>(<span class="ruby-ivar">@lockfile</span>, <span class="ruby-value str">'a+'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lf</span><span class="ruby-operator">|</span>
830
+ 464:
831
+ 465: <span class="ruby-identifier">locked</span> = <span class="ruby-keyword kw">false</span>
832
+ 466: <span class="ruby-identifier">refresher</span> = <span class="ruby-keyword kw">nil</span>
833
+ 467: <span class="ruby-identifier">sc</span> = <span class="ruby-keyword kw">nil</span>
834
+ 468:
835
+ 469: <span class="ruby-keyword kw">begin</span>
836
+ 470: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">touch</span> <span class="ruby-identifier">waiting</span>
837
+ 471: <span class="ruby-comment cmt"># poll</span>
838
+ 472: <span class="ruby-value">42</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span>
839
+ 473: <span class="ruby-identifier">locked</span> = <span class="ruby-identifier">lf</span>.<span class="ruby-identifier">posixlock</span>(<span class="ruby-identifier">ltype</span> <span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_NB</span>)
840
+ 474: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locked</span>
841
+ 475: <span class="ruby-identifier">sleep</span> <span class="ruby-identifier">rand</span>
842
+ 476: <span class="ruby-keyword kw">end</span>
843
+ 477:
844
+ 478: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locked</span>
845
+ 479: <span class="ruby-identifier">aquired</span> = <span class="ruby-keyword kw">true</span>
846
+ 480: <span class="ruby-identifier">refresher</span> = <span class="ruby-constant">Refresher</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-ivar">@lockfile</span>, <span class="ruby-ivar">@aquire_lock_refresh_rate</span>
847
+ 481: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;refresher pid &lt;#{ refresher.pid }&gt; refresh_rate &lt;#{ @aquire_lock_refresh_rate }&gt;&quot;</span> }
848
+ 482: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_f</span> <span class="ruby-identifier">waiting</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
849
+ 483: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">touch</span> <span class="ruby-identifier">lfile</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
850
+ 484: <span class="ruby-identifier">debug</span>{ <span class="ruby-value str">&quot;aquired lock&quot;</span> }
851
+ 485: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
852
+ 486: <span class="ruby-identifier">debug</span>{ <span class="ruby-value str">&quot;released lock&quot;</span> }
853
+ 487: <span class="ruby-keyword kw">else</span>
854
+ 488: <span class="ruby-identifier">aquired</span> = <span class="ruby-keyword kw">false</span>
855
+ 489: <span class="ruby-identifier">stat</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span> <span class="ruby-ivar">@lockfile</span>
856
+ 490: <span class="ruby-identifier">mtime</span> = <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">mtime</span>
857
+ 491: <span class="ruby-identifier">stale</span> = <span class="ruby-identifier">mtime</span> <span class="ruby-operator">&lt;</span> (<span class="ruby-constant">Time</span><span class="ruby-operator">::</span><span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@aquire_lock_lockfile_stale_age</span>)
858
+ 492: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stale</span>
859
+ 493: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockfile</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
860
+ 494: <span class="ruby-identifier">stat</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span> <span class="ruby-ivar">@lockfile</span>
861
+ 495: <span class="ruby-identifier">mtime</span> = <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">mtime</span>
862
+ 496: <span class="ruby-identifier">stale</span> = <span class="ruby-identifier">mtime</span> <span class="ruby-operator">&lt;</span> (<span class="ruby-constant">Time</span><span class="ruby-operator">::</span><span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@aquire_lock_lockfile_stale_age</span>)
863
+ 497: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stale</span>
864
+ 498: <span class="ruby-identifier">warn</span>{ <span class="ruby-node">&quot;detected stale lockfile of mtime &lt;#{ mtime }&gt;&quot;</span> }
865
+ 499: <span class="ruby-identifier">lockd_recover</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attempt_lockd_recovery</span>
866
+ 500: <span class="ruby-keyword kw">end</span>
867
+ 501: <span class="ruby-keyword kw">end</span>
868
+ 502: <span class="ruby-identifier">sc</span> = <span class="ruby-ivar">@aquire_lock_sc</span>.<span class="ruby-identifier">next</span>
869
+ 503: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;failed to aquire lock - sleep(#{ sc })&quot;</span> }
870
+ 504: <span class="ruby-identifier">sleep</span> <span class="ruby-identifier">sc</span>
871
+ 505: <span class="ruby-keyword kw">end</span>
872
+ 506:
873
+ 507: <span class="ruby-keyword kw">ensure</span>
874
+ 508: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">locked</span>
875
+ 509: <span class="ruby-identifier">unlocked</span> = <span class="ruby-keyword kw">false</span>
876
+ 510: <span class="ruby-keyword kw">begin</span>
877
+ 511: <span class="ruby-value">42</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span>
878
+ 512: <span class="ruby-identifier">unlocked</span> = <span class="ruby-identifier">lf</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> <span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">LOCK_NB</span>)
879
+ 513: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">unlocked</span>
880
+ 514: <span class="ruby-identifier">sleep</span> <span class="ruby-identifier">rand</span>
881
+ 515: <span class="ruby-keyword kw">end</span>
882
+ 516: <span class="ruby-keyword kw">ensure</span>
883
+ 517: <span class="ruby-identifier">lf</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> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">unlocked</span>
884
+ 518: <span class="ruby-keyword kw">end</span>
885
+ 519: <span class="ruby-keyword kw">end</span>
886
+ 520: <span class="ruby-identifier">refresher</span>.<span class="ruby-identifier">kill</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">refresher</span>
887
+ 521: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_f</span> <span class="ruby-identifier">waiting</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
888
+ 522: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_f</span> <span class="ruby-identifier">lfile</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
889
+ 523: <span class="ruby-keyword kw">end</span>
890
+ 524: <span class="ruby-keyword kw">end</span>
891
+ 525: <span class="ruby-keyword kw">ensure</span>
892
+ 526: <span class="ruby-comment cmt">#@lockf.unlock rescue nil unless read_only</span>
893
+ 527: <span class="ruby-keyword kw">end</span>
894
+ 528: <span class="ruby-keyword kw">end</span>
895
+ 529: <span class="ruby-identifier">ret</span>
896
+ 530: <span class="ruby-comment cmt">#--}}}</span>
897
+ 531: <span class="ruby-keyword kw">end</span>
898
+ </pre>
899
+ </div>
900
+ </div>
901
+ </div>
902
+
903
+ <div id="method-M000217" class="method-detail">
904
+ <a name="M000217"></a>
905
+
906
+ <div class="method-heading">
907
+ <a href="#M000217" class="method-signature">
908
+ <span class="method-name">connect</span><span class="method-args">() {|@db| ...}</span>
909
+ </a>
910
+ </div>
911
+
912
+ <div class="method-description">
913
+ <p><a class="source-toggle" href="#"
914
+ onclick="toggleCode('M000217-source');return false;">[Source]</a></p>
915
+ <div class="method-source-code" id="M000217-source">
916
+ <pre>
917
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 532</span>
918
+ 532: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">connect</span>
919
+ 533: <span class="ruby-comment cmt">#--{{{</span>
920
+ 534: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
921
+ 535: <span class="ruby-identifier">opened</span> = <span class="ruby-keyword kw">nil</span>
922
+ 536: <span class="ruby-keyword kw">begin</span>
923
+ 537: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'db has no schema'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">test</span> <span class="ruby-operator">?</span><span class="ruby-identifier">e</span>, <span class="ruby-ivar">@schema</span>
924
+ 538: <span class="ruby-identifier">debug</span>{<span class="ruby-node">&quot;connecting to db &lt;#{ @path }&gt;...&quot;</span>}
925
+ 539: <span class="ruby-identifier">$db</span> = <span class="ruby-ivar">@db</span> =
926
+ 540: <span class="ruby-keyword kw">begin</span>
927
+ 541: <span class="ruby-constant">SQLite</span><span class="ruby-operator">::</span><span class="ruby-constant">Database</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value">0</span>)
928
+ 542: <span class="ruby-keyword kw">rescue</span>
929
+ 543: <span class="ruby-constant">SQLite</span><span class="ruby-operator">::</span><span class="ruby-constant">Database</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-ivar">@path</span>)
930
+ 544: <span class="ruby-keyword kw">end</span>
931
+ 545: <span class="ruby-identifier">debug</span>{<span class="ruby-value str">&quot;connected.&quot;</span>}
932
+ 546: <span class="ruby-identifier">opened</span> = <span class="ruby-keyword kw">true</span>
933
+ 547: <span class="ruby-ivar">@db</span>.<span class="ruby-identifier">use_array</span> = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
934
+ 548: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span> <span class="ruby-ivar">@db</span>
935
+ 549: <span class="ruby-keyword kw">ensure</span>
936
+ 550: <span class="ruby-ivar">@db</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">opened</span>
937
+ 551: <span class="ruby-identifier">$db</span> = <span class="ruby-ivar">@db</span> = <span class="ruby-keyword kw">nil</span>
938
+ 552: <span class="ruby-identifier">debug</span>{<span class="ruby-node">&quot;disconnected from db &lt;#{ @path }&gt;&quot;</span>}
939
+ 553: <span class="ruby-keyword kw">end</span>
940
+ 554: <span class="ruby-identifier">ret</span>
941
+ 555: <span class="ruby-comment cmt">#--}}}</span>
942
+ 556: <span class="ruby-keyword kw">end</span>
943
+ </pre>
944
+ </div>
945
+ </div>
946
+ </div>
947
+
948
+ <div id="method-M000218" class="method-detail">
949
+ <a name="M000218"></a>
950
+
951
+ <div class="method-heading">
952
+ <a href="#M000218" class="method-signature">
953
+ <span class="method-name">execute</span><span class="method-args">sql, &amp;block</span>
954
+ </a>
955
+ </div>
956
+
957
+ <div class="method-description">
958
+ <p><a class="source-toggle" href="#"
959
+ onclick="toggleCode('M000218-source');return false;">[Source]</a></p>
960
+ <div class="method-source-code" id="M000218-source">
961
+ <pre>
962
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 557</span>
963
+ 557: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute</span> <span class="ruby-identifier">sql</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
964
+ 558: <span class="ruby-comment cmt">#--{{{</span>
965
+ 559: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'not in transaction'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@in_transaction</span>
966
+ 560: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sql_debug</span>
967
+ 561: <span class="ruby-identifier">logger</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;SQL:\n#{ sql }\n&quot;</span>
968
+ 562: <span class="ruby-keyword kw">end</span>
969
+ 563: <span class="ruby-comment cmt">#ret = retry_if_locked{ @db.execute sql, &amp;block }</span>
970
+ 564: <span class="ruby-identifier">ret</span> = <span class="ruby-ivar">@db</span>.<span class="ruby-identifier">execute</span> <span class="ruby-identifier">sql</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
971
+ 565: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sql_debug</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">ret</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">Array</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">ret</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">first</span>
972
+ 566: <span class="ruby-identifier">logger</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;RESULT:\n#{ ret.first.inspect }\n...\n&quot;</span>
973
+ 567: <span class="ruby-keyword kw">end</span>
974
+ 568: <span class="ruby-identifier">ret</span>
975
+ 569: <span class="ruby-comment cmt">#--}}}</span>
976
+ 570: <span class="ruby-keyword kw">end</span>
977
+ </pre>
978
+ </div>
979
+ </div>
980
+ </div>
981
+
982
+ <div id="method-M000223" class="method-detail">
983
+ <a name="M000223"></a>
984
+
985
+ <div class="method-heading">
986
+ <a href="#M000223" class="method-signature">
987
+ <span class="method-name">integrity_check</span><span class="method-args">path = @path</span>
988
+ </a>
989
+ </div>
990
+
991
+ <div class="method-description">
992
+ <p><a class="source-toggle" href="#"
993
+ onclick="toggleCode('M000223-source');return false;">[Source]</a></p>
994
+ <div class="method-source-code" id="M000223-source">
995
+ <pre>
996
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 705</span>
997
+ 705: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">integrity_check</span> <span class="ruby-identifier">path</span> = <span class="ruby-ivar">@path</span>
998
+ 706: <span class="ruby-comment cmt">#--{{{</span>
999
+ 707: <span class="ruby-identifier">debug</span>{ <span class="ruby-node">&quot;running integrity_check on &lt;#{ path }&gt;&quot;</span> }
1000
+ 708: <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">integrity_check</span>(<span class="ruby-identifier">path</span>)
1001
+ 709: <span class="ruby-comment cmt">#--}}}</span>
1002
+ 710: <span class="ruby-keyword kw">end</span>
1003
+ </pre>
1004
+ </div>
1005
+ </div>
1006
+ </div>
1007
+
1008
+ <div id="method-M000224" class="method-detail">
1009
+ <a name="M000224"></a>
1010
+
1011
+ <div class="method-heading">
1012
+ <a href="#M000224" class="method-signature">
1013
+ <span class="method-name">lock</span><span class="method-args">opts = {}</span>
1014
+ </a>
1015
+ </div>
1016
+
1017
+ <div class="method-description">
1018
+ <p><a class="source-toggle" href="#"
1019
+ onclick="toggleCode('M000224-source');return false;">[Source]</a></p>
1020
+ <div class="method-source-code" id="M000224-source">
1021
+ <pre>
1022
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 711</span>
1023
+ 711: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lock</span> <span class="ruby-identifier">opts</span> = {}
1024
+ 712: <span class="ruby-comment cmt">#--{{{</span>
1025
+ 713: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1026
+ 714: <span class="ruby-identifier">lockd_recover_wrap</span> <span class="ruby-keyword kw">do</span>
1027
+ 715: <span class="ruby-identifier">aquire_lock</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1028
+ 716: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1029
+ 717: <span class="ruby-keyword kw">end</span>
1030
+ 718: <span class="ruby-keyword kw">end</span>
1031
+ 719: <span class="ruby-identifier">ret</span>
1032
+ 720: <span class="ruby-comment cmt">#--}}}</span>
1033
+ 721: <span class="ruby-keyword kw">end</span>
1034
+ </pre>
1035
+ </div>
1036
+ </div>
1037
+ </div>
1038
+
1039
+ <div id="method-M000222" class="method-detail">
1040
+ <a name="M000222"></a>
1041
+
1042
+ <div class="method-heading">
1043
+ <a href="#M000222" class="method-signature">
1044
+ <span class="method-name">lockd_recover</span><span class="method-args">()</span>
1045
+ </a>
1046
+ </div>
1047
+
1048
+ <div class="method-description">
1049
+ <p><a class="source-toggle" href="#"
1050
+ onclick="toggleCode('M000222-source');return false;">[Source]</a></p>
1051
+ <div class="method-source-code" id="M000222-source">
1052
+ <pre>
1053
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 613</span>
1054
+ 613: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lockd_recover</span>
1055
+ 614: <span class="ruby-comment cmt">#--{{{</span>
1056
+ 615: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attempt_lockd_recovery</span>
1057
+ 616: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;attempting lockd recovery&quot;</span> }
1058
+ 617: <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span><span class="ruby-operator">::</span><span class="ruby-identifier">now</span>
1059
+ 618: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1060
+ 619:
1061
+ 620: <span class="ruby-ivar">@lockd_recover_lockf</span>.<span class="ruby-identifier">lock</span> <span class="ruby-keyword kw">do</span>
1062
+ 621: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@dirname</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1063
+ 622: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@path</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1064
+ 623: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockfile</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1065
+ 624: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockd_recover</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1066
+ 625: <span class="ruby-identifier">mtime</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span>(<span class="ruby-ivar">@lockd_recover</span>).<span class="ruby-identifier">mtime</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-identifier">time</span>
1067
+ 626:
1068
+ 627: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">mtime</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">time</span>
1069
+ 628: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;skipping lockd recovery (another node has already recovered)&quot;</span> }
1070
+ 629: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">true</span>
1071
+ 630: <span class="ruby-keyword kw">else</span>
1072
+ 631: <span class="ruby-identifier">moved</span> = <span class="ruby-keyword kw">false</span>
1073
+ 632: <span class="ruby-keyword kw">begin</span>
1074
+ 633: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">touch</span> <span class="ruby-ivar">@lockd_recover</span>
1075
+ 634: <span class="ruby-ivar">@lockd_recovered</span> = <span class="ruby-keyword kw">false</span>
1076
+ 635:
1077
+ 636: <span class="ruby-keyword kw">begin</span>
1078
+ 637: <span class="ruby-identifier">report</span> = <span class="ruby-value str">&quot;hostname : \#{ Util::hostname }\npid : \#{ Process.pid }\ntime : \#{ Time::now }\nq :\npath : \#{ @dirname }\nstat : \#{ File::stat(@dirname).inspect }\ndb :\npath : \#{ @path }\nstat : \#{ File::stat(@path).inspect }\nlockfile :\npath : \#{ @lockfile }\nstat : \#{ File::stat(@lockfile).inspect }\n&quot;</span>
1079
+ 638: <span class="ruby-identifier">info</span>{ <span class="ruby-value str">&quot;LOCKD RECOVERY REPORT&quot;</span> }
1080
+ 639: <span class="ruby-identifier">logger</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">report</span>
1081
+ 640: <span class="ruby-identifier">cmd</span> = <span class="ruby-node">&quot;mail -s LOCKD_RECOVERY ara.t.howard@noaa.gov &lt;&lt;eof\n#{ report }\neof&quot;</span>
1082
+ 641: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">system</span> <span class="ruby-identifier">cmd</span>
1083
+ 642: <span class="ruby-keyword kw">rescue</span>
1084
+ 643: <span class="ruby-keyword kw">nil</span>
1085
+ 644: <span class="ruby-keyword kw">end</span>
1086
+ 645:
1087
+ 646: <span class="ruby-identifier">warn</span>{ <span class="ruby-node">&quot;sleeping #{ @lockd_recover_wait }s before continuing...&quot;</span> }
1088
+ 647: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@lockd_recover_wait</span>
1089
+ 648:
1090
+ 649: <span class="ruby-identifier">tmp</span> = <span class="ruby-node">&quot;#{ @dirname }.tmp&quot;</span>
1091
+ 650: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_rf</span> <span class="ruby-identifier">tmp</span>
1092
+ 651: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">mv</span> <span class="ruby-ivar">@dirname</span>, <span class="ruby-identifier">tmp</span>
1093
+ 652: <span class="ruby-identifier">moved</span> = <span class="ruby-keyword kw">true</span>
1094
+ 653:
1095
+ 654: <span class="ruby-identifier">rfiles</span> = [<span class="ruby-ivar">@path</span>, <span class="ruby-ivar">@lockfile</span>].<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-identifier">tmp</span>,<span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">basename</span>(<span class="ruby-identifier">f</span>))}
1096
+ 655: <span class="ruby-identifier">rfiles</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1097
+ 656: <span class="ruby-identifier">ftmp</span> = <span class="ruby-node">&quot;#{ f }.tmp&quot;</span>
1098
+ 657: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_rf</span> <span class="ruby-identifier">ftmp</span>
1099
+ 658: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">cp</span> <span class="ruby-identifier">f</span>, <span class="ruby-identifier">ftmp</span>
1100
+ 659: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm</span> <span class="ruby-identifier">f</span>
1101
+ 660: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">mv</span> <span class="ruby-identifier">ftmp</span>, <span class="ruby-identifier">f</span>
1102
+ 661: <span class="ruby-keyword kw">end</span>
1103
+ 662:
1104
+ 663: <span class="ruby-identifier">dbtmp</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span>(<span class="ruby-identifier">tmp</span>,<span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@path</span>))
1105
+ 664:
1106
+ 665: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">integrity_check</span>(<span class="ruby-identifier">dbtmp</span>)
1107
+ 666: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">mv</span> <span class="ruby-identifier">tmp</span>, <span class="ruby-ivar">@dirname</span>
1108
+ 667: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">cp</span> <span class="ruby-ivar">@lockd_recover_lockf</span>.<span class="ruby-identifier">path</span>, <span class="ruby-ivar">@lockd_recover</span>
1109
+ 668: <span class="ruby-ivar">@lockd_recovered</span> = <span class="ruby-keyword kw">true</span>
1110
+ 669: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@dirname</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1111
+ 670: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@path</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1112
+ 671: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockfile</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1113
+ 672: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockd_recover</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1114
+ 673: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;lockd recovery complete&quot;</span> }
1115
+ 674: <span class="ruby-keyword kw">else</span>
1116
+ 675: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">mv</span> <span class="ruby-identifier">tmp</span>, <span class="ruby-ivar">@dirname</span>
1117
+ 676: <span class="ruby-ivar">@lockd_recovered</span> = <span class="ruby-keyword kw">false</span>
1118
+ 677: <span class="ruby-identifier">error</span>{ <span class="ruby-value str">&quot;lockd recovery failed&quot;</span> }
1119
+ 678: <span class="ruby-keyword kw">end</span>
1120
+ 679:
1121
+ 680: <span class="ruby-identifier">ret</span> = <span class="ruby-ivar">@lockd_recovered</span>
1122
+ 681: <span class="ruby-keyword kw">ensure</span>
1123
+ 682: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">moved</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@lockd_recovered</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">tmp</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">test</span>(<span class="ruby-value">?d</span>, <span class="ruby-identifier">tmp</span>)
1124
+ 683: <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">mv</span> <span class="ruby-identifier">tmp</span>, <span class="ruby-ivar">@dirname</span>
1125
+ 684: <span class="ruby-keyword kw">end</span>
1126
+ 685: <span class="ruby-keyword kw">end</span>
1127
+ 686: <span class="ruby-keyword kw">end</span>
1128
+ 687: <span class="ruby-keyword kw">end</span>
1129
+ 688: <span class="ruby-identifier">ret</span>
1130
+ 689: <span class="ruby-comment cmt">#--}}}</span>
1131
+ 690: <span class="ruby-keyword kw">end</span>
1132
+ </pre>
1133
+ </div>
1134
+ </div>
1135
+ </div>
1136
+
1137
+ <div id="method-M000211" class="method-detail">
1138
+ <a name="M000211"></a>
1139
+
1140
+ <div class="method-heading">
1141
+ <a href="#M000211" class="method-signature">
1142
+ <span class="method-name">lockd_recover_wrap</span><span class="method-args">opts = {}</span>
1143
+ </a>
1144
+ </div>
1145
+
1146
+ <div class="method-description">
1147
+ <p><a class="source-toggle" href="#"
1148
+ onclick="toggleCode('M000211-source');return false;">[Source]</a></p>
1149
+ <div class="method-source-code" id="M000211-source">
1150
+ <pre>
1151
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 329</span>
1152
+ 329: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lockd_recover_wrap</span> <span class="ruby-identifier">opts</span> = {}
1153
+ 330: <span class="ruby-comment cmt">#--{{{</span>
1154
+ 331: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1155
+ 332: <span class="ruby-identifier">try_again</span> = <span class="ruby-keyword kw">false</span>
1156
+ 333: <span class="ruby-keyword kw">begin</span>
1157
+ 334: <span class="ruby-keyword kw">begin</span>
1158
+ 335: <span class="ruby-ivar">@lockd_recovered</span> = <span class="ruby-keyword kw">false</span>
1159
+ 336: <span class="ruby-identifier">old_mtime</span> =
1160
+ 337: <span class="ruby-keyword kw">begin</span>
1161
+ 338: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockd_recover</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1162
+ 339: <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span>(<span class="ruby-ivar">@lockd_recover</span>).<span class="ruby-identifier">mtime</span>
1163
+ 340: <span class="ruby-keyword kw">rescue</span>
1164
+ 341: <span class="ruby-constant">Time</span><span class="ruby-operator">::</span><span class="ruby-identifier">now</span>
1165
+ 342: <span class="ruby-keyword kw">end</span>
1166
+ 343: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1167
+ 344: <span class="ruby-keyword kw">ensure</span>
1168
+ 345: <span class="ruby-identifier">new_mtime</span> =
1169
+ 346: <span class="ruby-keyword kw">begin</span>
1170
+ 347: <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">uncache</span> <span class="ruby-ivar">@lockd_recover</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
1171
+ 348: <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">stat</span>(<span class="ruby-ivar">@lockd_recover</span>).<span class="ruby-identifier">mtime</span>
1172
+ 349: <span class="ruby-keyword kw">rescue</span>
1173
+ 350: <span class="ruby-identifier">old_mtime</span>
1174
+ 351: <span class="ruby-keyword kw">end</span>
1175
+ 352:
1176
+ 353: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_mtime</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">old_mtime</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">new_mtime</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">old_mtime</span> <span class="ruby-keyword kw">and</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@lockd_recovered</span>
1177
+ 354: <span class="ruby-identifier">try_again</span> = <span class="ruby-keyword kw">true</span>
1178
+ 355: <span class="ruby-keyword kw">end</span>
1179
+ 356: <span class="ruby-keyword kw">end</span>
1180
+ 357: <span class="ruby-keyword kw">rescue</span>
1181
+ 358: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">try_again</span>
1182
+ 359: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;a remote lockd recovery has invalidated this transaction!&quot;</span> }
1183
+ 360: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;retrying...&quot;</span>}
1184
+ 361: <span class="ruby-identifier">sleep</span> <span class="ruby-value">120</span>
1185
+ 362: <span class="ruby-keyword kw">retry</span>
1186
+ 363: <span class="ruby-keyword kw">else</span>
1187
+ 364: <span class="ruby-identifier">raise</span>
1188
+ 365: <span class="ruby-keyword kw">end</span>
1189
+ 366: <span class="ruby-keyword kw">end</span>
1190
+ 367: <span class="ruby-identifier">ret</span>
1191
+ 368: <span class="ruby-comment cmt">#--}}}</span>
1192
+ 369: <span class="ruby-keyword kw">end</span>
1193
+ </pre>
1194
+ </div>
1195
+ </div>
1196
+ </div>
1197
+
1198
+ <div id="method-M000227" class="method-detail">
1199
+ <a name="M000227"></a>
1200
+
1201
+ <div class="method-heading">
1202
+ <a href="#M000227" class="method-signature">
1203
+ <span class="method-name">read_lock</span><span class="method-args">(opts = {}, &amp;block)</span>
1204
+ </a>
1205
+ </div>
1206
+
1207
+ <div class="method-description">
1208
+ <p><a class="source-toggle" href="#"
1209
+ onclick="toggleCode('M000227-source');return false;">[Source]</a></p>
1210
+ <div class="method-source-code" id="M000227-source">
1211
+ <pre>
1212
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 724</span>
1213
+ 724: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_lock</span>(<span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1214
+ 725: <span class="ruby-comment cmt">#--{{{</span>
1215
+ 726: <span class="ruby-identifier">opts</span>[<span class="ruby-value str">'read_only'</span>] = <span class="ruby-keyword kw">true</span>
1216
+ 727: <span class="ruby-identifier">lock</span> <span class="ruby-identifier">opts</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
1217
+ 728: <span class="ruby-comment cmt">#--}}}</span>
1218
+ 729: <span class="ruby-keyword kw">end</span>
1219
+ </pre>
1220
+ </div>
1221
+ </div>
1222
+ </div>
1223
+
1224
+ <div id="method-M000221" class="method-detail">
1225
+ <a name="M000221"></a>
1226
+
1227
+ <div class="method-heading">
1228
+ <a href="#M000221" class="method-signature">
1229
+ <span class="method-name">recover!</span><span class="method-args">()</span>
1230
+ </a>
1231
+ </div>
1232
+
1233
+ <div class="method-description">
1234
+ <p><a class="source-toggle" href="#"
1235
+ onclick="toggleCode('M000221-source');return false;">[Source]</a></p>
1236
+ <div class="method-source-code" id="M000221-source">
1237
+ <pre>
1238
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 599</span>
1239
+ 599: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recover!</span>
1240
+ 600: <span class="ruby-comment cmt">#--{{{</span>
1241
+ 601: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'nested transaction'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in_transaction</span>
1242
+ 602: <span class="ruby-keyword kw">begin</span>
1243
+ 603: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">true</span>
1244
+ 604: <span class="ruby-identifier">connect</span>{ <span class="ruby-identifier">execute</span> <span class="ruby-value str">'vacuum'</span> }
1245
+ 605: <span class="ruby-identifier">require</span> <span class="ruby-value str">'timeout'</span>
1246
+ 606: <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-identifier">timeout</span>(<span class="ruby-value">60</span>){ <span class="ruby-identifier">system</span> <span class="ruby-node">&quot;sqlite #{ @path } .tables &gt;/dev/null 2&gt;&amp;1&quot;</span> }
1247
+ 607: <span class="ruby-keyword kw">ensure</span>
1248
+ 608: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">false</span>
1249
+ 609: <span class="ruby-keyword kw">end</span>
1250
+ 610: <span class="ruby-identifier">integrity_check</span>
1251
+ 611: <span class="ruby-comment cmt">#--}}}</span>
1252
+ 612: <span class="ruby-keyword kw">end</span>
1253
+ </pre>
1254
+ </div>
1255
+ </div>
1256
+ </div>
1257
+
1258
+ <div id="method-M000219" class="method-detail">
1259
+ <a name="M000219"></a>
1260
+
1261
+ <div class="method-heading">
1262
+ <a href="#M000219" class="method-signature">
1263
+ <span class="method-name">retry_if_locked</span><span class="method-args">() {|| ...}</span>
1264
+ </a>
1265
+ </div>
1266
+
1267
+ <div class="method-description">
1268
+ <p>
1269
+ TODO - add sleep cycle if this ends up getting used
1270
+ </p>
1271
+ <p><a class="source-toggle" href="#"
1272
+ onclick="toggleCode('M000219-source');return false;">[Source]</a></p>
1273
+ <div class="method-source-code" id="M000219-source">
1274
+ <pre>
1275
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 574</span>
1276
+ 574: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">retry_if_locked</span>
1277
+ 575: <span class="ruby-comment cmt">#--{{{</span>
1278
+ 576: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1279
+ 577: <span class="ruby-keyword kw">begin</span>
1280
+ 578: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1281
+ 579: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SQLite</span><span class="ruby-operator">::</span><span class="ruby-constant">BusyException</span>
1282
+ 580: <span class="ruby-identifier">warn</span>{ <span class="ruby-value str">&quot;database locked - waiting(1.0) and retrying&quot;</span> }
1283
+ 581: <span class="ruby-identifier">sleep</span> <span class="ruby-value">1.0</span>
1284
+ 582: <span class="ruby-keyword kw">retry</span>
1285
+ 583: <span class="ruby-keyword kw">end</span>
1286
+ 584: <span class="ruby-identifier">ret</span>
1287
+ 585: <span class="ruby-comment cmt">#--}}}</span>
1288
+ 586: <span class="ruby-keyword kw">end</span>
1289
+ </pre>
1290
+ </div>
1291
+ </div>
1292
+ </div>
1293
+
1294
+ <div id="method-M000228" class="method-detail">
1295
+ <a name="M000228"></a>
1296
+
1297
+ <div class="method-heading">
1298
+ <span class="method-name">rlock</span><span class="method-args">(opts = {}, &amp;block)</span>
1299
+ </div>
1300
+
1301
+ <div class="method-description">
1302
+ <p>
1303
+ Alias for <a href="QDB.html#M000227">read_lock</a>
1304
+ </p>
1305
+ </div>
1306
+ </div>
1307
+
1308
+ <div id="method-M000209" class="method-detail">
1309
+ <a name="M000209"></a>
1310
+
1311
+ <div class="method-heading">
1312
+ <a href="#M000209" class="method-signature">
1313
+ <span class="method-name">ro_transaction</span><span class="method-args">(opts = {}, &amp;block)</span>
1314
+ </a>
1315
+ </div>
1316
+
1317
+ <div class="method-description">
1318
+ <p><a class="source-toggle" href="#"
1319
+ onclick="toggleCode('M000209-source');return false;">[Source]</a></p>
1320
+ <div class="method-source-code" id="M000209-source">
1321
+ <pre>
1322
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 291</span>
1323
+ 291: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ro_transaction</span>(<span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1324
+ 292: <span class="ruby-comment cmt">#--{{{</span>
1325
+ 293: <span class="ruby-identifier">opts</span>[<span class="ruby-value str">'read_only'</span>] = <span class="ruby-keyword kw">true</span>
1326
+ 294: <span class="ruby-identifier">transaction</span>(<span class="ruby-identifier">opts</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1327
+ 295: <span class="ruby-comment cmt">#--}}}</span>
1328
+ 296: <span class="ruby-keyword kw">end</span>
1329
+ </pre>
1330
+ </div>
1331
+ </div>
1332
+ </div>
1333
+
1334
+ <div id="method-M000207" class="method-detail">
1335
+ <a name="M000207"></a>
1336
+
1337
+ <div class="method-heading">
1338
+ <a href="#M000207" class="method-signature">
1339
+ <span class="method-name">ro_transaction</span><span class="method-args">(opts = {}, &amp;block)</span>
1340
+ </a>
1341
+ </div>
1342
+
1343
+ <div class="method-description">
1344
+ <p><a class="source-toggle" href="#"
1345
+ onclick="toggleCode('M000207-source');return false;">[Source]</a></p>
1346
+ <div class="method-source-code" id="M000207-source">
1347
+ <pre>
1348
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 258</span>
1349
+ 258: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ro_transaction</span>(<span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1350
+ 259: <span class="ruby-comment cmt">#--{{{</span>
1351
+ 260: <span class="ruby-identifier">opts</span>[<span class="ruby-value str">'read_only'</span>] = <span class="ruby-keyword kw">true</span>
1352
+ 261: <span class="ruby-identifier">transaction</span>(<span class="ruby-identifier">opts</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
1353
+ 262: <span class="ruby-comment cmt">#--}}}</span>
1354
+ 263: <span class="ruby-keyword kw">end</span>
1355
+ </pre>
1356
+ </div>
1357
+ </div>
1358
+ </div>
1359
+
1360
+ <div id="method-M000214" class="method-detail">
1361
+ <a name="M000214"></a>
1362
+
1363
+ <div class="method-heading">
1364
+ <a href="#M000214" class="method-signature">
1365
+ <span class="method-name">rollback_transaction</span><span class="method-args">(*a)</span>
1366
+ </a>
1367
+ </div>
1368
+
1369
+ <div class="method-description">
1370
+ <p><a class="source-toggle" href="#"
1371
+ onclick="toggleCode('M000214-source');return false;">[Source]</a></p>
1372
+ <div class="method-source-code" id="M000214-source">
1373
+ <pre>
1374
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 417</span>
1375
+ 417: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rollback_transaction</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
1376
+ 418: <span class="ruby-comment cmt">#--{{{</span>
1377
+ 419: <span class="ruby-identifier">raise</span> <span class="ruby-constant">RollbackTransactionError</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>
1378
+ 420: <span class="ruby-comment cmt">#--}}}</span>
1379
+ 421: <span class="ruby-keyword kw">end</span>
1380
+ </pre>
1381
+ </div>
1382
+ </div>
1383
+ </div>
1384
+
1385
+ <div id="method-M000215" class="method-detail">
1386
+ <a name="M000215"></a>
1387
+
1388
+ <div class="method-heading">
1389
+ <a href="#M000215" class="method-signature">
1390
+ <span class="method-name">sillyclean</span><span class="method-args">opts = {}</span>
1391
+ </a>
1392
+ </div>
1393
+
1394
+ <div class="method-description">
1395
+ <p><a class="source-toggle" href="#"
1396
+ onclick="toggleCode('M000215-source');return false;">[Source]</a></p>
1397
+ <div class="method-source-code" id="M000215-source">
1398
+ <pre>
1399
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 422</span>
1400
+ 422: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sillyclean</span> <span class="ruby-identifier">opts</span> = {}
1401
+ 423: <span class="ruby-comment cmt">#--{{{</span>
1402
+ 424: <span class="ruby-identifier">ro</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span> <span class="ruby-value str">'read_only'</span>, <span class="ruby-identifier">opts</span>
1403
+ 425: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1404
+ 426: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ro</span>
1405
+ 427: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1406
+ 428: <span class="ruby-keyword kw">else</span>
1407
+ 429: <span class="ruby-identifier">glob</span> = <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-identifier">join</span> <span class="ruby-ivar">@dirname</span>,<span class="ruby-value str">'.nfs*'</span>
1408
+ 430: <span class="ruby-identifier">orgsilly</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-identifier">glob</span>]
1409
+ 431: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1410
+ 432: <span class="ruby-identifier">newsilly</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-identifier">glob</span>]
1411
+ 433: <span class="ruby-identifier">silly</span> = <span class="ruby-identifier">newsilly</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">orgsilly</span>
1412
+ 434: <span class="ruby-identifier">silly</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span> <span class="ruby-constant">FileUtils</span><span class="ruby-operator">::</span><span class="ruby-identifier">rm_rf</span> <span class="ruby-identifier">path</span>}
1413
+ 435: <span class="ruby-keyword kw">end</span>
1414
+ 436: <span class="ruby-identifier">ret</span>
1415
+ 437: <span class="ruby-comment cmt">#--}}}</span>
1416
+ 438: <span class="ruby-keyword kw">end</span>
1417
+ </pre>
1418
+ </div>
1419
+ </div>
1420
+ </div>
1421
+
1422
+ <div id="method-M000208" class="method-detail">
1423
+ <a name="M000208"></a>
1424
+
1425
+ <div class="method-heading">
1426
+ <a href="#M000208" class="method-signature">
1427
+ <span class="method-name">transaction</span><span class="method-args">opts = {}</span>
1428
+ </a>
1429
+ </div>
1430
+
1431
+ <div class="method-description">
1432
+ <p><a class="source-toggle" href="#"
1433
+ onclick="toggleCode('M000208-source');return false;">[Source]</a></p>
1434
+ <div class="method-source-code" id="M000208-source">
1435
+ <pre>
1436
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 264</span>
1437
+ 264: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">transaction</span> <span class="ruby-identifier">opts</span> = {}
1438
+ 265: <span class="ruby-comment cmt">#--{{{</span>
1439
+ 266: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'nested transaction'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in_transaction</span>
1440
+ 267: <span class="ruby-identifier">ro</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span> <span class="ruby-value str">'read_only'</span>, <span class="ruby-identifier">opts</span>
1441
+ 268: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1442
+ 269: <span class="ruby-keyword kw">begin</span>
1443
+ 270: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">true</span>
1444
+ 271: <span class="ruby-identifier">lockd_recover_wrap</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1445
+ 272: <span class="ruby-identifier">transaction_wrap</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1446
+ 273: <span class="ruby-identifier">aquire_lock</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1447
+ 274: <span class="ruby-comment cmt">#sillyclean(opts) do</span>
1448
+ 275: <span class="ruby-identifier">connect</span> <span class="ruby-keyword kw">do</span>
1449
+ 276: <span class="ruby-identifier">execute</span> <span class="ruby-value str">'begin'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ro</span>
1450
+ 277: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1451
+ 278: <span class="ruby-identifier">execute</span> <span class="ruby-value str">'commit'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ro</span>
1452
+ 279: <span class="ruby-keyword kw">end</span>
1453
+ 280: <span class="ruby-comment cmt">#end</span>
1454
+ 281: <span class="ruby-keyword kw">end</span>
1455
+ 282: <span class="ruby-keyword kw">end</span>
1456
+ 283: <span class="ruby-keyword kw">end</span>
1457
+ 284: <span class="ruby-keyword kw">ensure</span>
1458
+ 285: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">false</span>
1459
+ 286: <span class="ruby-keyword kw">end</span>
1460
+ 287: <span class="ruby-identifier">ret</span>
1461
+ 288: <span class="ruby-comment cmt">#--}}}</span>
1462
+ 289: <span class="ruby-keyword kw">end</span>
1463
+ </pre>
1464
+ </div>
1465
+ </div>
1466
+ </div>
1467
+
1468
+ <div id="method-M000210" class="method-detail">
1469
+ <a name="M000210"></a>
1470
+
1471
+ <div class="method-heading">
1472
+ <a href="#M000210" class="method-signature">
1473
+ <span class="method-name">transaction</span><span class="method-args">opts = {}</span>
1474
+ </a>
1475
+ </div>
1476
+
1477
+ <div class="method-description">
1478
+ <p><a class="source-toggle" href="#"
1479
+ onclick="toggleCode('M000210-source');return false;">[Source]</a></p>
1480
+ <div class="method-source-code" id="M000210-source">
1481
+ <pre>
1482
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 297</span>
1483
+ 297: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">transaction</span> <span class="ruby-identifier">opts</span> = {}
1484
+ 298: <span class="ruby-comment cmt">#--{{{</span>
1485
+ 299: <span class="ruby-identifier">ro</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span> <span class="ruby-value str">'read_only'</span>, <span class="ruby-identifier">opts</span>
1486
+ 300: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1487
+ 301: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in_transaction</span>
1488
+ 302: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">'continuing transaction...'</span>
1489
+ 303: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1490
+ 304: <span class="ruby-keyword kw">else</span>
1491
+ 305: <span class="ruby-keyword kw">begin</span>
1492
+ 306: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">'starting transaction...'</span>
1493
+ 307: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">true</span>
1494
+ 308: <span class="ruby-identifier">lockd_recover_wrap</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1495
+ 309: <span class="ruby-identifier">transaction_wrap</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1496
+ 310: <span class="ruby-identifier">aquire_lock</span>(<span class="ruby-identifier">opts</span>) <span class="ruby-keyword kw">do</span>
1497
+ 311: <span class="ruby-comment cmt">#sillyclean(opts) do</span>
1498
+ 312: <span class="ruby-identifier">connect</span> <span class="ruby-keyword kw">do</span>
1499
+ 313: <span class="ruby-identifier">execute</span> <span class="ruby-value str">'begin'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ro</span>
1500
+ 314: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1501
+ 315: <span class="ruby-identifier">execute</span> <span class="ruby-value str">'commit'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ro</span>
1502
+ 316: <span class="ruby-keyword kw">end</span>
1503
+ 317: <span class="ruby-comment cmt">#end</span>
1504
+ 318: <span class="ruby-keyword kw">end</span>
1505
+ 319: <span class="ruby-keyword kw">end</span>
1506
+ 320: <span class="ruby-keyword kw">end</span>
1507
+ 321: <span class="ruby-keyword kw">ensure</span>
1508
+ 322: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">false</span>
1509
+ 323: <span class="ruby-keyword kw">end</span>
1510
+ 324: <span class="ruby-keyword kw">end</span>
1511
+ 325: <span class="ruby-identifier">ret</span>
1512
+ 326: <span class="ruby-comment cmt">#--}}}</span>
1513
+ 327: <span class="ruby-keyword kw">end</span>
1514
+ </pre>
1515
+ </div>
1516
+ </div>
1517
+ </div>
1518
+
1519
+ <div id="method-M000212" class="method-detail">
1520
+ <a name="M000212"></a>
1521
+
1522
+ <div class="method-heading">
1523
+ <a href="#M000212" class="method-signature">
1524
+ <span class="method-name">transaction_wrap</span><span class="method-args">opts = {}</span>
1525
+ </a>
1526
+ </div>
1527
+
1528
+ <div class="method-description">
1529
+ <p>
1530
+ TODO - perhaps should not retry on SQLException?? yet errors seem to map to
1531
+ this exception even when the sql is fine&#8230; safest (and most anoying)
1532
+ is to simply retry.
1533
+ </p>
1534
+ <p><a class="source-toggle" href="#"
1535
+ onclick="toggleCode('M000212-source');return false;">[Source]</a></p>
1536
+ <div class="method-source-code" id="M000212-source">
1537
+ <pre>
1538
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 375</span>
1539
+ 375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">transaction_wrap</span> <span class="ruby-identifier">opts</span> = {}
1540
+ 376: <span class="ruby-comment cmt">#--{{{</span>
1541
+ 377: <span class="ruby-identifier">ro</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">getopt</span> <span class="ruby-value str">'read_only'</span>, <span class="ruby-identifier">opts</span>
1542
+ 378: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">nil</span>
1543
+ 379: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ro</span>
1544
+ 380: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1545
+ 381: <span class="ruby-keyword kw">else</span>
1546
+ 382: <span class="ruby-identifier">errors</span> = []
1547
+ 383: <span class="ruby-ivar">@transaction_retries_sc</span>.<span class="ruby-identifier">reset</span>
1548
+ 384: <span class="ruby-keyword kw">begin</span>
1549
+ 385: <span class="ruby-identifier">ret</span> = <span class="ruby-keyword kw">yield</span>
1550
+ 386: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1551
+ 387: <span class="ruby-comment cmt">#rescue SQLite::DatabaseException, SQLite::SQLException, SystemCallError =&gt; e</span>
1552
+ 388: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">e</span>
1553
+ 389: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">AbortedTransactionError</span>
1554
+ 390: <span class="ruby-identifier">raise</span>
1555
+ 391: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">RollbackTransactionError</span>
1556
+ 392: <span class="ruby-identifier">raise</span>
1557
+ 393: <span class="ruby-keyword kw">else</span>
1558
+ 394: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@transaction_retries</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1559
+ 395: <span class="ruby-identifier">raise</span>
1560
+ 396: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-ivar">@transaction_retries</span>
1561
+ 397: <span class="ruby-identifier">error</span>{ <span class="ruby-value str">&quot;MAXIMUM TRANSACTION RETRIES SURPASSED&quot;</span> }
1562
+ 398: <span class="ruby-identifier">raise</span>
1563
+ 399: <span class="ruby-keyword kw">else</span>
1564
+ 400: <span class="ruby-identifier">warn</span>{ <span class="ruby-identifier">e</span> } <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">errors</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-keyword kw">not</span> <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-identifier">erreq</span>(<span class="ruby-identifier">errors</span>[<span class="ruby-value">-1</span>], <span class="ruby-identifier">e</span>))
1565
+ 401: <span class="ruby-identifier">errors</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">e</span>
1566
+ 402: <span class="ruby-identifier">warn</span>{ <span class="ruby-node">&quot;retry &lt;#{ errors.size }&gt;...&quot;</span> }
1567
+ 403: <span class="ruby-keyword kw">end</span>
1568
+ 404: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@transaction_retries_sc</span>.<span class="ruby-identifier">next</span>
1569
+ 405: <span class="ruby-keyword kw">retry</span>
1570
+ 406: <span class="ruby-keyword kw">end</span>
1571
+ 407: <span class="ruby-keyword kw">end</span>
1572
+ 408: <span class="ruby-keyword kw">end</span>
1573
+ 409: <span class="ruby-identifier">ret</span>
1574
+ 410: <span class="ruby-comment cmt">#--}}}</span>
1575
+ 411: <span class="ruby-keyword kw">end</span>
1576
+ </pre>
1577
+ </div>
1578
+ </div>
1579
+ </div>
1580
+
1581
+ <div id="method-M000220" class="method-detail">
1582
+ <a name="M000220"></a>
1583
+
1584
+ <div class="method-heading">
1585
+ <a href="#M000220" class="method-signature">
1586
+ <span class="method-name">vacuum</span><span class="method-args">()</span>
1587
+ </a>
1588
+ </div>
1589
+
1590
+ <div class="method-description">
1591
+ <p><a class="source-toggle" href="#"
1592
+ onclick="toggleCode('M000220-source');return false;">[Source]</a></p>
1593
+ <div class="method-source-code" id="M000220-source">
1594
+ <pre>
1595
+ <span class="ruby-comment cmt"># File lib/rq-3.0.0/qdb.rb, line 587</span>
1596
+ 587: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vacuum</span>
1597
+ 588: <span class="ruby-comment cmt">#--{{{</span>
1598
+ 589: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'nested transaction'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@in_transaction</span>
1599
+ 590: <span class="ruby-keyword kw">begin</span>
1600
+ 591: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">true</span>
1601
+ 592: <span class="ruby-identifier">connect</span>{ <span class="ruby-identifier">execute</span> <span class="ruby-value str">'vacuum'</span> }
1602
+ 593: <span class="ruby-keyword kw">ensure</span>
1603
+ 594: <span class="ruby-ivar">@in_transaction</span> = <span class="ruby-keyword kw">false</span>
1604
+ 595: <span class="ruby-keyword kw">end</span>
1605
+ 596: <span class="ruby-keyword kw">self</span>
1606
+ 597: <span class="ruby-comment cmt">#--}}}</span>
1607
+ 598: <span class="ruby-keyword kw">end</span>
1608
+ </pre>
1609
+ </div>
1610
+ </div>
1611
+ </div>
1612
+
1613
+ <div id="method-M000226" class="method-detail">
1614
+ <a name="M000226"></a>
1615
+
1616
+ <div class="method-heading">
1617
+ <span class="method-name">wlock</span><span class="method-args">opts = {}</span>
1618
+ </div>
1619
+
1620
+ <div class="method-description">
1621
+ <p>
1622
+ Alias for <a href="QDB.html#M000225">write_lock</a>
1623
+ </p>
1624
+ </div>
1625
+ </div>
1626
+
1627
+ <div id="method-M000225" class="method-detail">
1628
+ <a name="M000225"></a>
1629
+
1630
+ <div class="method-heading">
1631
+ <span class="method-name">write_lock</span><span class="method-args">opts = {}</span>
1632
+ </div>
1633
+
1634
+ <div class="method-description">
1635
+ <p>
1636
+ Alias for <a href="QDB.html#M000224">lock</a>
1637
+ </p>
1638
+ </div>
1639
+ </div>
1640
+
1641
+
1642
+ </div>
1643
+
1644
+
1645
+ </div>
1646
+
1647
+
1648
+ <div id="validator-badges">
1649
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1650
+ </div>
1651
+
1652
+ </body>
1653
+ </html>